python修改xpath节点_在Python中使用XPath计算节点的最有效方法

它打印1(或1.0),因为在您要获取的HTML文件中只有一个这样的元素带有id="body"。在

我下载了文件并证实了这一点。E、 g.:$ curl -O http://intelligencesquaredus.org/debates/past-debates/item/587-islam-is-dominated-by-radicals

获取文件587-islam-is-dominated-by-radicals

^{pr2}$

答案1。为了更确切地说,我也用vi手动搜索了这个文件,就一个!在

也许您正在寻找另一个div节点?一个有不同的id?在

更新:顺便说一句,XPath和其他HTML/XML解析非常具有挑战性。大量的坏数据和大量复杂的标记,乘以了检索、解析和遍历过程的复杂性。你可能会运行你的测试和试验很多次。如果你不为他们中的每一个都“入网”,那会快得多。缓存实时结果。原始代码如下所示:from lxml import html, etree

import requests

filepath = "587-islam-is-dominated-by-radicals"

try:

contents = open(filepath).read()

print "(reading cached copy)"

except IOError:

url = "http://intelligencesquaredus.org/debates/past-debates/item/587-islam-is-dominated-by-radicals"

print "(getting file from the net; please stand by)"

r = requests.get(url)

contents = r.content

tree = html.fromstring(contents)

count = tree.xpath('count(//*[@id="body"])')

print count

但是您可以通过使用通用缓存前端来简化这一过程,比如requests-cache。解析快乐!在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值