首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >抓取xpath抓取元

抓取xpath抓取元
EN

Stack Overflow用户
提问于 2018-05-01 01:46:36
回答 1查看 176关注 0票数 0

我正在抓取这个url:http://quotes.toscrape.com/

当我这样做的时候,它工作得很好:

代码语言:javascript
复制
response.xpath("//meta[@itemprop='keywords']/@content").extract()
response.xpath("//meta[@itemprop='keywords'][1]/@content").extract_first()

但是当我尝试使用索引从该元数据列表中获取第二个元数据时

代码语言:javascript
复制
response.xpath("//meta[@itemprop='keywords'][2]/@content").extract_first()

它不起作用。

我遗漏了什么?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2018-05-01 02:00:26

您需要将表达式放在括号中的索引之前:

而不是:

代码语言:javascript
复制
"//meta[@itemprop='keywords'][2]/@content"

它应该是:

代码语言:javascript
复制
"(//meta[@itemprop='keywords'])[2]/@content"

这是必需的,因为您的xpath中有参数运算符。

您可以测试以下内容:

代码语言:javascript
复制
$ scrapy shell "http://quotes.toscrape.com/"
In [1]: response.xpath("//meta[@itemprop='keywords'][2]/@content").extract_first()

In [2]: response.xpath("(//meta[@itemprop='keywords'])[2]/@content").extract_first()
Out[2]: 'abilities,choices'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50105661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档