如何发送http post 请求来扩展网页上的文本

How to send http post request to expand text on webpage

我通过抓取一些 tripadvisor 的吸引力来学习 Scrapy。 (例如此页面:https://www.tripadvisor.com/Attractions-g187791-Activities-Rome_Lazio.html)。我面临的问题之一是,如果评论的长度超过一定长度,它将显示一个 "more" 按钮,然后用 javascript 扩展文本。我无法 post 请求扩展这些评论的文本。

遵循此处给出的建议:Click a Button in Scrapy

我已经获取了 post 请求: 请求 URL:https://www.tripadvisor.com/OverlayWidgetAjax?Mode=EXPANDED_HOTEL_REVIEWS_RESP&metaReferer=

要求 method:POST

在 scrapy shell 我试过以下方法:

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

然后通过调用比较上述评论的结果:

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

与堆栈示例不同的是,它没有要发送的表单,而只有一个简单的请求,即扩展文本。 1 单击 "more" 按钮可展开页面上的所有这些案例。所以我希望这种方法能够扩展所有文本,但它不会扩展任何内容,也不会更改页面上的任何内容。

我的主要问题是我很难测试,因为我正在处理 scrapy shell 或 bash.

Request(…) 实际上并没有获取该请求并相应地更新 response。请改用 fetch(Request(…))