如何发送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(…))
。
我通过抓取一些 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(…))
。