我正在使用scrapy解析Russian Central Bank website的利率
我还在Google Chrome中使用Xpath Helper扩展程序来找到必要的XPath选择器。我在下面的XPath帮助器控制台中使用的选择器完全可以根据需要工作。
即使出于某种原因,相同的查询也无法在我的蜘蛛中运行,即使它导航到该页面。
您可以在下面看到我的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
}
该页面似乎没有被登录阻止,因为我可以解析该页面上的其他元素。
我该怎么做才能使代码正常工作?
答案 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()