Ответ с веб-сайта не содержит элементов, которые я пытаюсь найти с помощью Xpath и Scrapy. Однако, используя ChroPath, они есть

#python #web-scraping #xpath #scrapy

Вопрос:

Когда я открываю режим проверки в браузере, я могу найти эти элементы(href), также, если вы используете ChroPath, вы можете без проблем увидеть точный список нужных вам ссылок.

Я пытаюсь извлечь hrefs из этих элементов:

 <a data-ng-bind="::championship.countryName ', ' championship.name   ' '" data-ng-href="/stavki/sport/mma/ufc/dana_white_s_contender_series__season_5__week_10/" class="ng-binding" href="/stavki/sport/mma/ufc/dana_white_s_contender_series__season_5__week_10/">UFC, Dana White's Contender Series: Season 5, Week 10 </a> 

Когда я пытаюсь получить html-ответ с помощью Scrapy или Beautiful Soap, этот ответ не содержит этих тегов, и я не могу найти элемент, используя тот же Xpath(в ChroPath я могу).

Комментарии:

1. Вероятно, элементы создаются динамически с помощью кода JavaScript. Селен может помочь.

2. Он создается динамически с помощью JavaScript. Откройте devtools->сеть->>xhr и получите его из ‘>> winline.ru/api/v2/menu/search?id_project=5amp;menu_status=1

3. Спасибо вам, ребята, у меня были подозрения на этот счет. Есть ли какой-нибудь способ сделать это без Селена? @MichaelButscher

4. проверено, и оно идет из веб-сокета, поэтому в этом случае нет возможности проанализировать его стандартными методами в Scrapy.

Ответ №1:

проверено, и оно идет из веб-сокета, поэтому в этом случае нет стандартного способа получения данных с помощью Scrapy. Можно использовать клиент websocket, но это другой вопрос.