Xpath 是正确的,但 Scrapy 不起作用
Xpath is correct but Scrapy doesn't work
我正在尝试从网页下载两个字段,我为每个字段识别 XPath 表达式,然后 运行 蜘蛛程序,但没有下载任何内容。
网页:
http://www.morningstar.es/es/funds/snapshot/snapshot.aspx?id=F0GBR04MZH
我要逐项列出的字段是 ISIN
。
蜘蛛 运行没有错误,但输出为空。
代码如下:
item['ISIN'] = response.xpath('//*[@id="overviewQuickstatsDiv"]/table/tbody/tr[5]/td[3]/text()').extract()
我认为 response.selector 没有给出。试试这个。
response.selector.xpath('//*[@id="overviewQuickstatsDiv"]/table/tbody/tr[5]/td[3]/text()').extract()
尝试从 XPath 中删除 tbody
:
'//*[@id="overviewQuickstatsDiv"]/table//tr[5]/td[3]/text()'
请注意,此标记是您的浏览器在页面呈现时添加的,它在页面源代码中不存在
P.S。我建议你使用恕我直言,甚至更好的 XPath:
'//td[.="ISIN"]/following-sibling::td[contains(@class, "text")]/text()'
我正在尝试从网页下载两个字段,我为每个字段识别 XPath 表达式,然后 运行 蜘蛛程序,但没有下载任何内容。
网页: http://www.morningstar.es/es/funds/snapshot/snapshot.aspx?id=F0GBR04MZH
我要逐项列出的字段是 ISIN
。
蜘蛛 运行没有错误,但输出为空。
代码如下:
item['ISIN'] = response.xpath('//*[@id="overviewQuickstatsDiv"]/table/tbody/tr[5]/td[3]/text()').extract()
我认为 response.selector 没有给出。试试这个。
response.selector.xpath('//*[@id="overviewQuickstatsDiv"]/table/tbody/tr[5]/td[3]/text()').extract()
尝试从 XPath 中删除 tbody
:
'//*[@id="overviewQuickstatsDiv"]/table//tr[5]/td[3]/text()'
请注意,此标记是您的浏览器在页面呈现时添加的,它在页面源代码中不存在
P.S。我建议你使用恕我直言,甚至更好的 XPath:
'//td[.="ISIN"]/following-sibling::td[contains(@class, "text")]/text()'