gpt4 book ai didi

python - 如何分两个阶段进行 xpath 搜索?

转载 作者:太空宇宙 更新时间:2023-11-04 10:38:49 24 4
gpt4 key购买 nike

请帮助修复脚本。

import lxml.html
import requests

doc = lxml.html.document_fromstring("""<html>
<body>
<div class="wrap">
<span class="one">one</span>
<span class="two">two</span>
</div>
</body>
</html>
""")

#first search
result1 = doc.xpath('//div[@class="wrap"]')
print(result1)

#second search
result2 = result1.xpath('//span/text()')
print(result2)

我需要脚本分两个阶段搜索文本:

  • 第 1 步:搜索树“div.wrap”,
  • 第 2 步:搜索文本元素。

结果应该是一个列表['一', '二']

最佳答案

将两个 xpath 表达式合并为一个:

>>> doc.xpath('//div[@class="wrap"]/span/text()')
['one', 'two']

如果需要分两个阶段进行:

>>> result1 = doc.xpath('//div[@class="wrap"]')
>>> result1
[<Element div at 0x2cf5ba0>]
>>> result1[0].xpath('.//span/text()')
['one', 'two']

如果 result1 可以是多个项目列表,你需要某种循环:

>>> [div.xpath('.//span/text()') for div in result1]
[['one', 'two']]
>>> [txt for div in result1 for txt in div.xpath('.//span/text()')]
['one', 'two']

关于python - 如何分两个阶段进行 xpath 搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22033966/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com