Как отправить http сообщение с просьбой развернуть текст на веб-странице - PullRequest
0 голосов
/ 06 февраля 2019

Я изучаю Scrapy, вычеркивая привлекательность tripadvisor.(например, эта страница: https://www.tripadvisor.com/Attractions-g187791-Activities-Rome_Lazio.html). Одна из проблем, с которыми я сталкиваюсь, заключается в том, что если обзор длиннее определенной длины, он отобразит кнопку «больше», которая затем с помощью javascript расширяет текст. I 'Я не могу отправить запрос на расширение текста этих обзоров.

, следуя приведенному здесь совету: Нажмите кнопку в Scrapy

Я получил сообщениезапрос: URL запроса: https://www.tripadvisor.com/OverlayWidgetAjax?Mode=EXPANDED_HOTEL_REVIEWS_RESP&metaReferer=

Метод запроса: POST

В оболочке Scrapy я попробовал следующее:

from scrapy.http.request import Request 
fetch("/7695907/nazhmite-knopku-v-scrapy")
Request(url="https://www.tripadvisor.com/OverlayWidgetAjax?Mode=EXPANDED_HOTEL_REVIEWS_RESP&metaReferer=",method="POST")   

, а затем сравнил результаты указанногоотзывы по телефону:

response.css("p.partial_entry").getall()        

В отличие от стекового примера, здесь нет формы для отправки, а только простой запрос на расширение текста. 1 нажатие на кнопку «еще» расширяетвсе эти случаи на странице. Поэтому я ожидал бы, что этот метод расширит все тексты, но он ничего не расширит и не изменит что-либо на странице.

Моя главная проблема в том, что у меня трудное время тестированиятак как я работаю через ломy shell или bash.

1 Ответ

0 голосов
/ 06 февраля 2019

Request(…) фактически не получает этот запрос и не обновляет response соответственно.Вместо этого используйте fetch(Request(…)).

...