我正在使用Scrapy抓取一个ASP.net页面,该页面显示一个分页的项目列表.要浏览项目,可以使用以下格式的下一个和上一个按钮:
<form name="aspnetForm" method="POST" action="search_active_main.aspx" id="aspnetForm">
<!-- other content here -->
<!-- previous button -->
<input type="image" name="ctl00$gvMain$ctl01$btnPrevious" id="ctl00_gvMain_ctl01_btnPrevious" src="/image/previous.gif" />
<!-- next button -->
<input type="image" name="ctl00$gvMain$ctl01$btnNext" id="ctl00_gvMain_ctl01_btnNext" src="/image/next.gif" />
<!-- other content here -->
</form>
Run Code Online (Sandbox Code Playgroud)
当您单击其中一个按钮时,这样的内容将作为POST的一部分发送:
ctl00$gvMain$ctl01$btnNext.x:37
ctl00$gvMain$ctl01$btnNext.y:10
Run Code Online (Sandbox Code Playgroud)
这些数字代表什么/如何在不使用像Selenium这样的东西的情况下爬行它们?
正如黑曜石凤凰建议的那样,这些数字代表了点击按钮的坐标.要抓取页面,您只需要在FormRequest中将以下内容作为formdata进行POST,以模拟下一个按钮单击:
FormRequest.from_response(
response,
formdata={
'ctl00$gvMain$ctl01$btnNext.x':'1'
'ctl00$gvMain$ctl01$btnNext.y':'1'
},
dont_click=True,
dont_filter=True,
callback=self.your_callback_function
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1194 次 |
| 最近记录: |