我想在里面获取文本div和内部属性,例如ul和li我的 html 层次结构如下所示<div> text <ul> <li>text</li> <li>text</li> <li>text</li> </ul></div>所以我可以使用xpath('div/text()')函数获取 div 文本,但我被困在内部属性中获取其他文本。有人可以帮助我如何正确地做到这一点。
1 回答
隔江千里
TA贡献1906条经验 获得超10个赞
使用BeautifulSoup:
from bs4 import BeautifulSoup
import urllib
test = '''<div>text_0<ul>
<li>text_1</li>
<li>text_2</li>
<li>text_3</li>
</ul>
</div>'''
soup = BeautifulSoup(test, 'html.parser')
data = soup.find_all("div")
for d in data:
print(d.text)
输出:
text_0
text_1
text_2
text_3
使用xpath:
import lxml.html as LH
content = '''<div>text_0<ul>
<li>text_1</li>
<li>text_2</li>
<li>text_3</li>
</ul>
</div>'''
root = LH.fromstring(content)
for elem in root.xpath('//div/descendant::text()'):
print(elem)
添加回答
举报
0/150
提交
取消