猿问

使用 XPath 在内部属性中接收数据

我想在里面获取文本div和内部属性,例如ul和li


我的 html 层次结构如下所示


<div>

  text

  <ul>

     <li>text</li>

     <li>text</li>

     <li>text</li>

  </ul>

</div>

所以我可以使用xpath('div/text()')函数获取 div 文本,但我被困在内部属性中获取其他文本。有人可以帮助我如何正确地做到这一点。


慕慕森
浏览 160回答 1
1回答

隔江千里

使用BeautifulSoup:from bs4 import BeautifulSoupimport urllibtest = '''<div>text_0<ul>&nbsp; &nbsp; &nbsp;<li>text_1</li>&nbsp; &nbsp; &nbsp;<li>text_2</li>&nbsp; &nbsp; &nbsp;<li>text_3</li>&nbsp; </ul></div>'''soup = BeautifulSoup(test, 'html.parser')data = soup.find_all("div")for d in data:&nbsp; &nbsp; print(d.text)输出:text_0text_1text_2text_3使用xpath:import lxml.html as LHcontent = '''<div>text_0<ul>&nbsp; &nbsp; &nbsp;<li>text_1</li>&nbsp; &nbsp; &nbsp;<li>text_2</li>&nbsp; &nbsp; &nbsp;<li>text_3</li>&nbsp; </ul></div>'''root = LH.fromstring(content)for elem in root.xpath('//div/descendant::text()'):&nbsp; &nbsp; print(elem)
随时随地看视频慕课网APP

相关分类

Python
我要回答