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

Has*_*hik 4 python beautifulsoup html-parsing web-scraping

如何获取给定代码中"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>
Run Code Online (Sandbox Code Playgroud)

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

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

宏杰李*_*宏杰李 10

href属于a标签,而不是li标签,使用li.a获得a的标签

文档:使用标记名称导航

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'))
Run Code Online (Sandbox Code Playgroud)

出:

Link1
Link2
Link3
Run Code Online (Sandbox Code Playgroud)

为何使用class_:

这是非常有用的搜索具有一定的CSS类的标记,但CSS属性的名称,class,是Python中的保留字.使用class作为关键字参数会给出语法错误.从Beautiful Soup 4.1.2开始,您可以使用关键字参数通过CSS类进行搜索class_.