python - BeautifulSoup .get 未返回 'href'

标签 python web-scraping beautifulsoup

我正在创建一个网络抓取工具,可以将文章下载到 txt 文件中。我已经用 bs4 创建了 soup,并提取了包含我要下载的文章所需 url 的特定 html 片段:

>>>prevLink = soup2.select('.previous_post')
>>>prevLink
[<span class="previous_post">Previous Post: <a href="http://www.mrmoneymustache.com/2018/11/08/honey-badger-entrepreneur/" rel="prev">An Interview With The Man Who Never Needed a Real Job</a></span>]

到目前为止一切都很好(我认为)。然后我尝试使用 .get('href') 拉出链接,但它返回“none”。

>>>print(prevLink[0].get('href'))
None

但是,当我使用 .get('class') 来选择类时,它似乎有效。

>>> print(prevLink[0].get('class'))
['previous_post']

我不明白为什么 .get('class') 的行为与 .get('href') 不同。 感谢您的关注。

最佳答案

prevLink 实际上并不是引用链接,而是引用 span 元素。

只需使用选择器深入了解 a 元素即可:

prevLink = soup2.select_one('.previous_post > a')
print(prevLink.get('href'))

关于python - BeautifulSoup .get 未返回 'href',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53843949/

相关文章:

python - 在循环中使用 Scrapy Itemloader

python - 使用 BeautifulSoup 查找以给定字母开头的所有元素

javascript - 如何使用 python 解析 Javascript 变量?

python - 使用 Python 脚本通过运行 csv 文件数据来创建字典列表

Python 多处理类型错误 : can't pickle generator objects

python - python中冲突的变量和函数名称

python - 使用 Beautiful Soup 和 Python 从搜索页面提取 HTML 内容

python - 网页抓取 : scrape multiple webs by Python

python-3.x - 当每页有 30 个元素时,BeautifulSoup 仅返回每页 20 个元素

python - 使用 plt.show() 在 pycharm 中出现兼容性错误