一、POST網址獲取
何為post網址?就是一般用了ajax或.NET中的一些技術當你請求新內容時,頁面只進行局部刷新,地址欄中的URL不變。
我們處理此類采集時的思路就是用抓包工具,截取請求時提交的內容找出共同特點,用火車中的“分頁”變量進行替換并給定值范圍,這樣火車在采集時會自動提交請求內容得到新的內容列表進行采集。
我們著重講解怎么樣抓包,抓哪的包及如何處理抓包得到的數據。內容的采集和普通頁面一樣,在此就不多說了。
抓包工具:fiddler
下載地址:http://www.telerik.com/download/fiddler
二、方法/步驟
(1)下載安裝抓包工具fiddler
(2)我們用瀏覽器打開要抓取的頁面,例如 http://www.ditan360.com/News/List.aspx?ColumnPageID=15 當你進行翻頁時就會發現此頁是用post提交翻頁請求的,網址不變化。
(3)打開fiddler工具
如圖,點擊開啟抓包模式,在點擊左邊列表,CTRL+X清空數據流。
(4)此時,我們操作瀏覽器 點擊下一頁,用fiddler抓包,找POST類型的網址,點擊View in Notepad 以文本的形式展現。重復這一步驟,點擊左邊列表,CTRL+X清空數據流。操作瀏覽器 再點擊下一頁,用fiddler抓包,找POST類型的網址,點擊View in Notepad 以文本的形式展現。
(5)接下來我們來分析2次點擊下一頁,所得出的數據包的區別
先起始地址,cookie,user-agent 對應設置
分析發現,我們數據包的格式為:
字段名1=字段值1&;字段名2=字段值2&;字段名3=字段值3。.。.。.
中間是&;符號連接的。
所以我們可以通過查找&;符號,分析下2次數據包里字段值不同的地方。
對比發現 VIEWSTATE 和EVENTVALIDATION 的值每次都是變化的,且無規律的所以在這里我們給定義成隨機值,分別為 [POST隨機值1] ,[POST隨機值2] 。
PageList1%24ListPage1%24ctl06 字段值每次是根據當前頁數字變化的,我們用 [分頁] 表示
如圖,這就是我們整理好的POST數據包,放入軟件即可:
(6)定義隨機值范圍
在瀏覽器網頁,右擊,查看源代碼,搜索 __VIEWSTATE 和 __EVENTVALIDATION 的值的截取前后位置
由此我們可以確定,開始字符串為 id=”__VIEWSTATE” value=” , 結束字符串為 ” />; 其他的隨機值定義原理類似
設置效果
這樣一個完整的POST采集就設置好了