在爬取asp.net的系統中(聽說這個技術比較過時了,但是這個系統應該是內部寫的,可能會用到asp.net新的一些技術,具體有沒影響未知,我也不太懂)
系統開始還有個需要登錄,我是通過瀏覽器登錄后,開發人員工具取了cookie,放在后續的headers中,然后
通過requests.get或者post(data為空字典)都可以獲取第一個頁面的資訊,然后在第一個頁面的基礎上,獲取如下:
values['__EVENTTARGET']='ctl00$ContentPlaceHolder1$GridView1'
values['__EVENTARGUMENT']='Page$2'
values['__LASTFOCUS']=soup.select('#__LASTFOCUS')[0].attrs['value']
values['__VIEWSTATE']=soup.select('#__VIEWSTATE')[0].attrs['value']
values['__VIEWSTATEENCRYPTED']=soup.select('#__VIEWSTATEENCRYPTED')[0].attrs['value']
values['__VIEWSTATEGENERATOR']=soup.select('#__VIEWSTATEGENERATOR')[0].attrs['value']
values['__EVENTVALIDATION']=soup.select('#__EVENTVALIDATION')[0].attrs['value']
(期中參考了一些網貼,從第一個頁面html決議得到如上的一些引數值,感覺能獲取的都獲取了,其中values['__EVENTARGUMENT']='Page$2',中的是根據開發人員分析工具看頁面切換的規律得到的,我只是先試試取第二個頁面,所以先沒有回圈。)
把這些引數作為第二個頁面的post資料,依然只能獲得第一個頁面的結果(這里列的引數好像隨意增減一些,都是獲得第一個頁面的),總之就是無法實作翻頁抓取后面資料資訊。
有沒大蝦幫忙,指點下。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/135268.html
