【asp.net爬蟲】asp.NET分頁控制項抓取第n頁資料 javascript:__doPostBack

來源:互聯網
上載者:User

標籤:log   div   uid   ack   html   lis   this   card   資料   

最近在類比HTTP請求抓取資料,但是伺服器是asp.net開發的

分頁控制項代碼

    <tr>        <td align="left">共&nbsp210&nbsp條記錄&nbsp--&nbsp第&nbsp2&nbsp頁&nbsp--&nbsp共&nbsp3&nbsp頁</td><td align="right"><a id="OraclePager1_First" 
href="javascript:__doPostBack(&#39;OraclePager1$First&#39;,&#39;&#39;)"> 首頁 </a>&nbsp;<a id="OraclePager1_Prev" href="javascript:__doPostBack(&#39;OraclePager1$Prev&#39;,&#39;&#39;)"> 上一頁
</a>&nbsp;<a id="OraclePager1_Next" href="javascript:__doPostBack(&#39;OraclePager1$Next&#39;,&#39;&#39;)"> 下一頁 </a>&nbsp;<a id="OraclePager1_Last"
href="javascript:__doPostBack(&#39;OraclePager1$Last&#39;,&#39;&#39;)"> 尾頁 </a><select name="OraclePager1$PageList"
onchange="javascript:setTimeout(&#39;__doPostBack(\&#39;OraclePager1$PageList\&#39;,\&#39;\&#39;)&#39;, 0)" id="OraclePager1_PageList"> <option value="0">1</option> <option selected="selected" value="1">2</option> <option value="2">3</option> </select></td> </tr>

點擊下一頁其實是調用js方法

javascript:__doPostBack(&#39;OraclePager1$Next&#39;,&#39;&#39;)

通過抓包拼接請求postdata

                ticket_postdata = "__EVENTTARGET=OraclePager1%24Next&__EVENTARGUMENT=" + getElementValueByID(ticket_html, "__EVENTARGUMENT") + "&__LASTFOCUS=&__VIEWSTATE=" + getElementValueByID(ticket_html, "__VIEWSTATE") + "&__VIEWSTATEGENERATOR=" + getElementValueByID(ticket_html, "__VIEWSTATEGENERATOR") + "&__VIEWSTATEENCRYPTED=&" + getElementValueByID(ticket_html, "__VIEWSTATEENCRYPTED") + "&txtMemberCardNO=16881270&txtMemberName=&txtStartData=2016-12-01&txtStartTime=00%3A00%3A00&txtEndData=2016-12-29&txtEndTime=23%3A59%3A59&txtPNR=&txtOperatorName=&txtFlight=&txtAirLine=&txtGuestName=&txtGuestCardNo=&txtOrderID=&ddlOrderStatus=&ddlOrderSource=&ddlactivecode=0&txtMobile=&txtTicketNo=&txtKXOrderId=&ddlPayType=2&ddlOrderType=0&OraclePager1%24PageList=" + count;                ticket_html = spider.POST(main_url + "Ticket/Ticket/TicketOrderList.aspx?TopMenuID=3&LeftMenuID=306", ticket_postdata, main_url + "Ticket/Ticket/TicketOrderList.aspx?TopMenuID=3&LeftMenuID=306", Encoding.GetEncoding("GB2312"));

結果伺服器返回

Invalid postback or callback argument. Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page. 
For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected,
use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.

坑爹的,根本擷取不到想要的第二頁資料

【asp.net爬蟲】asp.NET分頁控制項抓取第n頁資料 javascript:__doPostBack

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.