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