前面學習了隱藏列表頁(欄目頁)抓包分析教程,但有時列表頁沒有分頁號并且是動態加載,本教程講解怎么采集這種列表頁
本教程所使用到的天線貓軟件有:文章組合工具集 萬能文章采集器
抓包工具:
抓包可選傲游瀏覽器或其他谷歌內核瀏覽器或任何抓包工具。
抓包時注意,在網頁上鼠標右鍵-審查-網絡(Network)才能進入抓包界面:
網頁的訪問方法(Method):有GET和POST兩種,GET就是【一條網址】,而POST是【一條網址+投遞參數】,一般都是GET方法,但是如果抓包列表頁地址時碰到POST方法(比如百度百科)就需要特殊處理下才能使用到軟件上進行采集
抓包過程:
以今日頭條為例,使用天線貓萬能文章采集器等多款軟件輔助
1、開始抓包:
當下拉滾動條到底部時,該網頁就會刷新出新的新聞列表,通常抓包會抓到很多地址,可以通過響應正文(Response)是否包含目標內容(如列表頁中的文章標題、文章地址)、響應內容的大小(一般注意大尺寸)來判斷哪個才是新聞列表的刷新讀取地址(后面簡稱刷新地址)。
我這里抓包到的刷新地址是:http://toutiao.com/api/article/recent/?...
復制刷新地址的方法
可以右鍵單擊抓包列表中的刷新地址彈出菜單-Copy Link Address
或者左鍵單擊刷新地址Headers-General-Request URL-選中地址-右鍵菜單-復制
然后繼續抓下一個的刷新地址:http://toutiao.com/api/article/recent/?...
使用天線貓文章組合工具集比對-網址參數比對比較這2個刷新地址,可以發現有3個參數產生了變化。
2、分析抓包數據:
在抓包時可以發現新聞列表的響應正文是JSON數據,因此使用天線貓Json解析助手來分析這3個參數是怎么來的:
復制響應正文的方法
可以右鍵單擊抓包列表中的刷新地址彈出菜單-CopyResponse
或者左鍵單擊刷新地址Response-右鍵菜單-全選-復制
可以看到,Json數據中的 next.max_behot_time 節點的值構成了刷新地址中的第一個 max_behot_time 參數
而Json數據中的 data.[15].create_time 節點(也就是新聞列表中的最后一個即序號為15的項目的 create_time)的值構成了刷新地址中的第二個 max_create_time 參數
而第三個 _ 參數我們可以使用一個動態時間戳(實際上這個參數沒什么作用,可以保留抓包時的原值,也可以使用一個動態值)。
結果構建出來的模板刷新地址:http://toutiao.com/api/article/recent/?source=2&count=15&category=__all__&max_behot_time=[#next.max_behot_time#]&utm_source=toutiao&offset=0&max_create_time=[#data.[15].create_time#]&_={#毫秒時間戳#}
然后發現這個今日頭條還要求提供Cookies,否則抓取到的新聞列表就不準確,因此在抓包時可以到請求里復制出Cookies:uuid="w:2336ce5e12794f1c9d90ea07c2d4dc47"; tt_webid=19421740959; csrftoken=19f08b2051f0abbb85ee449e648fb3ad; CNZZDATA1258609184=1681606143-1466332000-%7C1466337400; _ga=GA1.2.451981020.1466332236; utm_source=toutiao
3、最后采集列表頁:
采集好列表頁后,在萬能文章采集器的【采集文章URL列表】對這些列表頁采集出文章地址列表時,請保持【采集列表頁URL(動態加載)】窗口處于打開狀態,這樣才能調用該窗口中的Cookies設置,因為今日頭條刷新新聞列表時要求Cookies。
下面是采集文章地址的設置:
上一篇:如何提交百度網址
文章地址:http://www.meyanliao.com/course/1045.html