刮刮ASP.NET页面 - 下一步按钮单击

jye*_*yek 1 asp.net scrapy

我正在使用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这样的东西的情况下爬行它们?

jye*_*yek 5

正如黑曜石凤凰建议的那样,这些数字代表了点击按钮的坐标.要抓取页面,您只需要在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)