为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕慕森 2021-11-16 15:35:47
我想在里面获取文本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)


查看完整回答
反对 回复 2021-11-16
  • 1 回答
  • 0 关注
  • 159 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信