我现在正在学习如何使用BS4,但我还没想到的一件事是如何获得一个同名的另一个span类中的span类。
HTML示例
<span class="test class">
<span class="another class">
<span class="test class">
data I want
</span>
我为其他数据做的事情就像是
find('span', class_="test class").get_text().strip()
但是当我想拿第二节时,这需要第一节课。提前谢谢。
答案 0 :(得分:1)
您需要使用another class
类强制执行元素内的搜索。您可以通过链接find()
来电来执行此操作:
elm = soup.find('span', class_="another class").find('span', class_="test class")
print(elm.get_text())
或者,一次性使用CSS selector:
elm = soup.select_one("span.another.class > span.test.class")
print(elm.get_text())
其中>
表示直接的父子关系。
答案 1 :(得分:0)
find_all('span', class_="test class")[1].get_text().strip()
这将找到带有class ='test class'的span的所有实例,将其存储在列表中。然后我们选择列表的第二个元素,它将对应于测试类的第二个元素。
答案 2 :(得分:0)
这对我有用:
from bs4 import BeautifulSoup
html = """
<span class="test class">
<span class="another class">
<span class="test class">
data I want
</span>
"""
soup = BeautifulSoup(html, 'html.parser')
span = soup.find('span', class_="test class")
print span.get_text().strip()
>>> data I want
系统详情: