Scrapy:网页的下一个按钮使用WebForm_DoPostBackWithOptions

问题描述

我是新手,尝试刮擦https://www.sakan.co/result?srv=1&prov=&cty=&maintyp=1&typ=5&minpr=&maxpr=&bdrm=&blk=

此网页正在使用href,其中包含以下内容:

href="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$Content$rptPaging$ctl02$lbPaging","",true,false,true))"

数据正在动态加载。我试图找到正在加载但找不到任何数据的源(如果有API调用)。如何导航到下一页并使用Scrapy抓取数据。

解决方法

此js有效执行的操作是触发POST请求,您可以在浏览器开发人员工具的“网络”标签中检查请求的详细信息。 (在Firefox中为F12-打开标签并点击链接) enter image description here

您的Scrapy需要重现相同的POST请求。该页面中提供了正文中的所有信息,请记住,以__开头的字段(例如__VIEWSTATE)是实例相关的,因此您需要从页面中检索它们的值,粗糙的加载,复制和粘贴通常会失败。

更简单的方法是使用FormRequest.from_response() method。但是,检查该方法是否产生与浏览器相同的请求正文很重要,该方法通常会跳过必填字段或添加一个额外的字段。 (它取决于页面的<form>

您可以在Scrapy FAQ的此链接中了解有关刮取此类页面的更多信息。

最后一个提示:如果您的请求正文就像浏览器一样,但是请求仍然失败,则可能还需要重现请求标头。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...