试图用scrapy从finance.yahoo.com上抓取文本,但我得到的只是一个空列表

试图用scrapy从finance.yahoo.com上抓取文本,但我得到的只是一个空列表,scrapy,Scrapy,我使用命令scrapyshell打开了一个scrapyshell到finance.yahoo.comhttp://finance.yahoo.com 我使用chrome的xpath扩展来复制元素的xpath。它是页面顶部以黄色突出显示的“Stock Watch”一词 然后我使用命令response.xpath('/*[@id=“yui_3_18_1_1440609738592_1798”]”)。extract() 我期待的是“股票手表”这个词会被退回。但我得到的只是[] 我做错了什么?这是因为您

我使用命令
scrapyshell打开了一个scrapyshell到finance.yahoo.comhttp://finance.yahoo.com

我使用chrome的xpath扩展来复制元素的xpath。它是页面顶部以黄色突出显示的“Stock Watch”一词

然后我使用命令
response.xpath('/*[@id=“yui_3_18_1_1440609738592_1798”]”)。extract()

我期待的是“股票手表”这个词会被退回。但我得到的只是[]


我做错了什么?

这是因为您得到的响应中没有
id
属性

您可以使用以下代码对此进行验证:

In [20]: response.xpath('//div/span/..').extract()[0]
Out[20]: u'<div class="hd"> <span>Stock watch:</span> </div>'
[20]中的
:response.xpath('//div/span/。).extract()[0]
Out[20]:u'库存手表:'
顺便说一句:你在浏览器中看到的ID每次在你调用金融网站的每台机器上都不同——这些ID是在网站加载时自动生成的