我试图在根据该单词对我想要分类的单词之后找到所有列表。
所以我的样本数据如下:
<p>
<a href="#">WordA</a>
</p>
<ul>
<li>Something</li>
<li>Something</li>
<ul>
<p>
<a href="#">WordB</a>
</p>
<ul>
<li>Something</li>
<li>Something</li>
<ul>
将上面的示例考虑在内,我希望获取WordA
,并将其分类到下面的列表,WordB
也是如此。
是否有可能搜索WordA
并在其下方找到<ul>
标记?
答案 0 :(得分:2)
对段落中的所有链接进行迭代,因为每个链接都会获得父级的下一个同级ul
标记并获取所有li
个标记(find_next_sibling()
有助于获取下一个ul
段落后的元素):
from bs4 import BeautifulSoup
html = """
<div>
<p>
<a href="#">WordA</a>
</p>
<ul>
<li>Something</li>
<li>Something</li>
</ul>
<p>
<a href="#">WordB</a>
</p>
<ul>
<li>Something</li>
<li>Something</li>
</ul>
</div>
"""
soup = BeautifulSoup(html)
for a in soup.select('p > a'):
print a.text
for li in a.parent.find_next_sibling('ul').find_all('li'):
print li.text
print "-----"
打印:
WordA
Something
Something
-----
WordB
Something
Something
-----