Селектор XPath работает в консоли XPath Helper, но не работает в scrapy - PullRequest
0 голосов
/ 12 октября 2018

Я использую scrapy для анализа процентных ставок с сайта Центрального банка России

Я также использую расширение Xpath Helper в Google Chrome для поиска необходимого селектора XPath.Селектор, который я использую в XPath Helper Console ниже, работает именно так, как мне нужно.

Xpath Helper Console

Тот же запрос по какой-то причине не работает в моем пауке,даже при переходе на страницу.

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 голосов
/ 12 октября 2018

В таблице нет этого узла tbody - он добавляется браузером при отображении страницы, поэтому просто не используйте его в XPath (.../table/tbody/tr/... -> .../table//tr/...):

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

или упрощенный

rates = response.xpath('//td').extract()
...