python - 获取 <li> 中 <a> 标签的 href

标签 python web-scraping beautifulsoup html-parsing

如何获取给定代码中 "Subforum" 类下所有标签的 href?

<li class="subforum">
<a href="Link1">Link1 Text</a>
</li>
<li class="subforum">
<a href="Link2">Link2 Text</a>
</li>
<li class="subforum">
<a href="Link3">Link3 Text</a>
</li>

我试过这段代码,但显然它没有用。

Bs = BeautifulSoup(requests.get(url).text,"lxml")
Class = Bs.findAll('li', {'class': 'subforum"'})
for Sub in Class:
    print(Link.get('href'))

最佳答案

href属于a标签,不属于li标签,使用li.a获取一个标签

文档:Navigating using tag names

import bs4

html = '''<li class="subforum">
 <a href="Link1">Link1 Text</a>
 </li>
 <li class="subforum">
<a href="Link2">Link2 Text</a>
</li>
<li class="subforum">
<a href="Link3">Link3 Text</a>
</li>`<br>'''

soup = bs4.BeautifulSoup(html, 'lxml')
for li in soup.find_all(class_="subforum"):
    print(li.a.get('href'))

输出:

Link1
Link2
Link3

为什么要使用class_:

搜索具有特定 CSS 类的标签非常有用,但是 CSS 属性的名称 class 是 Python 中的保留字。 使用class 作为关键字参数会给你一个语法错误。从 Beautiful Soup 4.1.2 开始,你可以使用关键字参数 class_ 按 CSS class 搜索。

关于python - 获取 <li> 中 <a> 标签的 href,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41745514/

相关文章:

vba - 无法让我的脚本继续使用IE单击“加载更多”按钮

python - 在Python中从h1中剥离span(漂亮的汤)

python - 使用 Beautiful Soup 查找特定类

python - 抓取免费代理列表网站

python - 美汤加工

python - Scikit Learn 基于树的特征选择保留列名称?

python - python中的排序函数

python - 使用 Python 读取大文件

python - 如何计算椭圆高斯分布的角度

python - 将标题添加到我已抓取的表格中