如何解决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-打开标签并点击链接)
您的Scrapy需要重现相同的POST请求。该页面中提供了正文中的所有信息,请记住,以__
开头的字段(例如__VIEWSTATE
)是实例相关的,因此您需要从页面中检索它们的值,粗糙的加载,复制和粘贴通常会失败。
更简单的方法是使用FormRequest.from_response()
method。但是,检查该方法是否产生与浏览器相同的请求正文很重要,该方法通常会跳过必填字段或添加一个额外的字段。 (它取决于页面的<form>
)
您可以在Scrapy FAQ的此链接中了解有关刮取此类页面的更多信息。
最后一个提示:如果您的请求正文就像浏览器一样,但是请求仍然失败,则可能还需要重现请求标头。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。