Scrapy + Python + Xpath: Xpath возвращает пустой список - PullRequest
0 голосов
/ 21 сентября 2018

Мне нужно почистить ссылки на изображения с этой страницы: http://calendar.youtoocanrun.com/events/new-delhi-1/beat-that-run/

enter image description here

Я написал этот xpath:

response.xpath('//li[@class="geodir-active-slide"]/img/@src').extract()

Возвращен пустой список.Он должен был вернуть ссылки на файлы GIF и JPG.Почему?

1 Ответ

0 голосов
/ 21 сентября 2018

Проблема не в вашем выражении XPath, а в предположении, что искомый элемент находится в HTML-файле страницы, загруженном Scrapy.

Scrapy не запускает никаких файлов JavaScript, так чтово многих случаях ответ, который вы получаете в Scrapy, отличается от того, что вы видите в инструментах разработчика.

Если вы откроете тот же веб-сайт, используя опцию «просмотреть исходный код страницы» в своем браузере, вы увидите, чтоЭлемент, который вы ищете, не существует.Это означает, что такой элемент генерируется динамически с использованием JavaScript.

Есть несколько способов решить эту проблему, и я бы подошел к этому в следующем порядке:

  1. проверьте страницу HTML и найдитеJS-код, содержащий необходимые данные;
  2. проверяет запросы, которые ваш браузер выполняет на панели запросов в инструментах разработчика, и пытается найти запрос, который приносит этот контент для вас;
  3. useбезголовый браузер для отображения страницы для вас;
...