XPath选择器可在XPath Helper控制台中使用,但不能轻易使用

时间:2018-10-12 01:58:17

标签: xpath web-scraping scrapy scrapy-spider

我正在使用scrapy解析Russian Central Bank website的利率

我还在Google Chrome中使用Xpath Helper扩展程序来找到必要的XPath选择器。我在下面的XPath帮助器控制台中使用的选择器完全可以根据需要工作。

Xpath Helper Console

即使出于某种原因,相同的查询也无法在我的蜘蛛中运行,即使它导航到该页面。

Spider

您可以在下面看到我的Spider代码。

import scrapy
import urllib.parse

class RatesSpider(scrapy.Spider):
   name = 'rates'
   allowed_domains = ['cbr.ru']
   start_urls = ['https://www.cbr.ru/hd_base/zcyc_params/zcyc/?DateTo=01.10.2018']

   def parse(self, response):

    rates = response.xpath('/html/body/div/div/div/div/div/table/tbody/tr[2]/td').extract()

    yield {'Rates': rates
       }

该页面似乎没有被登录阻止,因为我可以解析该页面上的其他元素。

我该怎么做才能使代码正常工作?

1 个答案:

答案 0 :(得分:1)

表不包含该tbody节点-它是由浏览器在呈现页面时添加的,因此请勿在XPath中使用它.../table/tbody/tr/...-> {{ 1}}):

.../table//tr/...

或简化

rates = response.xpath('/html/body/div/div/div/div/div/table//tr[2]/td').extract()