gpt4 book ai didi

Python Xpath : lxml. etree.XPathEvalError: 无效谓词

转载 作者:太空狗 更新时间:2023-10-30 02:03:01 27 4
gpt4 key购买 nike

我正在尝试学习如何抓取网页,在教程中我使用下面的代码会引发此错误:

lxml.etree.XPathEvalError: Invalid predicate

我要查询的网站是(不要评判我,它是培训视频中使用的网站:/):https://itunes.apple.com/us/app/candy-crush-saga/id553834731

导致错误的xpath字符串在这里:

links = tree.xpath('//div[@class="center-stack"//*/a[@class="name"]/@href')

我正在使用 LXML 和请求库。

如果您需要任何其他信息,我很乐意提供!

最佳答案

print(tree.xpath('//div[@class="center-stack"]//*/a[@class="name"]/@href'))

您在 "center-stack" 之后缺少结束符 ]

您也可以从 div[@class="content"] 中提取 a[@class="name"] 标签

 tree.xpath('//div[@class="content"]//a[@class="name"]/@href')

两者都会给你你想要的 hrefs:

In [19]: import  requests

In [20]: from lxml.html import fromstring


In [21]: r = requests.get("https://itunes.apple.com/us/app/candy-crush-saga/id553834731")

In [22]: tree = fromstring(r.content)

In [23]: a = tree.xpath('//div[@class="content"]//a[@class="name"]/@href')

In [24]: b = tree.xpath('//div[@class="center-stack"]//*/a[@class="name"]/@href')

In [25]: print(a == b)
True

In [26]: print(a)
['https://itunes.apple.com/us/app/word-search-puzzles/id609067187?mt=8', 'https://itunes.apple.com/us/app/cookie-jam/id727296976?mt=8', 'https://itunes.apple.com/us/app/jewel-mania/id561326449?mt=8', 'https://itunes.apple.com/us/app/jelly-splash/id645949180?mt=8', 'https://itunes.apple.com/us/app/bubble-island/id531354582?mt=8']

In [27]: print(b)
['https://itunes.apple.com/us/app/word-search-puzzles/id609067187?mt=8', 'https://itunes.apple.com/us/app/cookie-jam/id727296976?mt=8', 'https://itunes.apple.com/us/app/jewel-mania/id561326449?mt=8', 'https://itunes.apple.com/us/app/jelly-splash/id645949180?mt=8', 'https://itunes.apple.com/us/app/bubble-island/id531354582?mt=8']

关于Python Xpath : lxml. etree.XPathEvalError: 无效谓词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36449369/

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