Как смоделировать выпадающий выбор и обновленную загрузку таблицы с помощью scrapy? - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь загрузить информацию о каждой странице акций в investing.com, начиная с раскрывающегося списка «Промышленный индекс Доу-Джонса» на странице investing.com / equities

Я думал об использовании скрапа с

options = response.css("select[class=stocksFilter] option[id=166]")

, но это не имитирует действие выбора.

После действия выбора я буду просматривать элементы таблицы один за другим в # cross_rate_markets_stocks_1 и рекурсивно сканировать эти страницы капитала

Можете ли вы указать, как имитировать действие щелчка?

1 Ответ

0 голосов
/ 30 октября 2019

Действие выбора - это взаимодействие пользователя с пользовательским интерфейсом браузера, но scrapy не отображает веб-страницу, мы не можем имитировать взаимодействие с пользователем или запускать Javascript с ним. Однако, если вы заинтересованы в сканировании путем имитации взаимодействия с пользователем, selenium может быть хорошим инструментом для вас.

Вернемся к вопросу, если мы хотим сканировать с scrapy, мы должны сосредоточиться на запросах и ответах , отправленных на целевой веб-сайт или на него, вы можете войти в них в Инструментах разработчика вашего браузера. После того, как вы открыли инструмент разработчика, откройте выпадающее меню и увидите, что на этот URL-адрес отправляется соответствующий запрос:

https://cn.investing.com/equities/StocksFilter?noconstruct=1&smlID=0&sid=&tabletype=price&index_id=166

screenshot1

Это запрос GET , с index_id, назначенным для выбранного идентификатора запаса, вы можете получить идентификатор запаса и имя из HTML-элемента https://investing.com/equities

'xpath of stock ID:   //*[@id="stocksFilter"]/option/@id'
'xpath of stock Name: //*[@id="stocksFilter"]/option/text()'
...