获取 <li> 中 <a> 标签的 href
Getting the href of <a> tag which is in <li>
如何获取给定代码中 class "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
得到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'))
输出:
Link1
Link2
Link3
为什么要用class_
:
搜索具有某CSSclass但CSS属性名称的标签非常有用,class
, 是 Python 中的保留字。 使用 class 作为关键字参数将为您提供 Beautiful Soup 4.1.2 的语法 error.As,您可以通过 CSS class 使用关键字参数 class_
.
你就快完成了,你只需要为你找到的每个 li
找到一个 a
元素:
Class = Bs.findAll('li', {'class': 'subforum"'})
for Sub in Class:
print(Sub.find("a").get('href')) # or Sub.a.get('href')
但是,有一个更简单的方法 - CSS selector:
for a in Bs.select("li.subforum a"):
print(a.get('href'))
此处,li.subforum a
将匹配具有 subforum
class 属性的 li
元素下的所有 a
元素。
附带说明一下,在 BeautifulSoup
4 中,findAll()
已重命名为 find_all()
。并且,您应该遵循 Python general variable naming guidelines.
如何获取给定代码中 class "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
得到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'))
输出:
Link1
Link2
Link3
为什么要用class_
:
搜索具有某CSSclass但CSS属性名称的标签非常有用,class
, 是 Python 中的保留字。 使用 class 作为关键字参数将为您提供 Beautiful Soup 4.1.2 的语法 error.As,您可以通过 CSS class 使用关键字参数 class_
.
你就快完成了,你只需要为你找到的每个 li
找到一个 a
元素:
Class = Bs.findAll('li', {'class': 'subforum"'})
for Sub in Class:
print(Sub.find("a").get('href')) # or Sub.a.get('href')
但是,有一个更简单的方法 - CSS selector:
for a in Bs.select("li.subforum a"):
print(a.get('href'))
此处,li.subforum a
将匹配具有 subforum
class 属性的 li
元素下的所有 a
元素。
附带说明一下,在 BeautifulSoup
4 中,findAll()
已重命名为 find_all()
。并且,您应该遵循 Python general variable naming guidelines.