python - 使用 bs4 和 Python 进行 URL 分离
问题描述
我正在为一堆链接抓取网站,这些链接位于单个 HTMLdiv
标记中,带有<br />
标记到换行符,但是当我尝试从中获取所有 URL 时,div
它只是以单个字符串形式出现。
我无法在list
. 我的代码如下:
使用以下代码,我正在抓取所有链接:
links = soup.find('div', id='dle-content').find('div', class_='full').find(
'div', class_='full-news').find('div', class_='quote').text
以下是来自网站的 html:
<div class="quote">
<!--QuoteEBegin-->
https://example.com/asd.html
<br>
https://example.net/abc
<br>
https://example.org/v/kjg/
<br>
<br>
<!--QuoteEEnd-->
</div>
我从上面的代码得到的输出:
https://example.com/asd.htmlhttps://example.net/abchttps://example.org/v/kjg/
我想要的输出:
[
"https://example.com/asd.html",
"https://example.net/abc",
"https://example.org/v/kjg/"
]
解决方案
尝试这个:
from bs4 import BeautifulSoup
sample = """<div class="quote">
<!--QuoteEBegin-->
https://example.com/asd.html
<br>
https://example.net/abc
<br>
https://example.org/v/kjg/
<br>
<br>
<!--QuoteEEnd-->
</div>"""
soup = BeautifulSoup(sample, "html.parser").find_all("div", class_="quote")
print([i.getText().split() for i in soup])
输出:
[['https://example.com/asd.html', 'https://example.net/abc', 'https://example.org/v/kjg/']]
推荐阅读
- windows - 在 Windows 上运行依赖 bash 的 dockerfile 的最简单方法是什么?
- javascript - (VUEJS 中的节点模块)没有找到这个相关模块?
- c# - 如何在 asp.net core 中编写一个高性能的 sql 查询应用程序?
- python - 如何在 VS Code 中使用 python 自动化 SSRS 报告?
- c# - 在 c# datagrid 中显示圣经 xml 文件
- google-apps-script - Here Developer API 可以与 Google 表格一起使用来进行地理编码吗?
- javascript - 如何从该对象/响应中提取 OrderID 并将其传递给另一个函数 onApproval?(贝宝 API)
- javascript - 创建实际弹出窗口时无法访问 chrome.extension.getBackgroundPage()
- sharepoint - 支持与 SharePoint 列表项共同创作
- dependency-injection - Azure Function 中的依赖注入的“发布”有一些奇怪的问题