前面有寫過(guò)一篇瀑布流的采集方法,今天在添加一個(gè)POST方法來(lái)采集Ajax刷新頁(yè)面的教程。
之前的文章請(qǐng)看:火車頭采集動(dòng)態(tài)加載Ajax數(shù)據(jù)(無(wú)分頁(yè)瀑布流網(wǎng)站)
如果遇到POST方法來(lái)架子Ajax數(shù)據(jù),這和我之前寫的是兩個(gè)類型,瀑布流是直接刷新出數(shù)據(jù)的頁(yè)面。
采集網(wǎng)站分析
采集任何一個(gè)新站前我們都要對(duì)他進(jìn)行一番分析才好下手。
列表頁(yè)分析
這個(gè)網(wǎng)站的列表頁(yè),前面并不是通過(guò)Ajax加載的。CTRL+U可以直接看到列表內(nèi)容,通過(guò)瀏覽器也看不到相關(guān)請(qǐng)求地址。


因?yàn)榱?xí)慣原因,我直接看了下尾頁(yè)列表頁(yè)。然后順手CTRL+U看看網(wǎng)站代碼結(jié)構(gòu)有沒(méi)有大的變化。防止后期采集出錯(cuò)。結(jié)果就發(fā)現(xiàn)無(wú)法看到列表內(nèi)容。瀏覽器可以看到一個(gè)通過(guò)post請(qǐng)求的地址。


這時(shí)候就意識(shí)到這網(wǎng)站列表頁(yè)可能后面的應(yīng)該全是通過(guò)Ajax加載的。
通過(guò)笨方法,手動(dòng)訪問(wèn)頁(yè)面看看Ajax加載大概是哪些。最后找到大概從2200頁(yè)左右開(kāi)始Ajax加載。
那我們采集的時(shí)候,前面的列表頁(yè)就可以使用普通方式去采集(速度更快)。
2200頁(yè)開(kāi)始到尾頁(yè)就通過(guò)post請(qǐng)求Ajax頁(yè)面數(shù)據(jù)。
抓包獲取Post數(shù)據(jù)
這個(gè)Ajax地址我在瀏覽器看不到任何跟頁(yè)碼有關(guān)的數(shù)據(jù)。最后只能使用抓包工具看一下詳細(xì)的請(qǐng)求內(nèi)容了。

使用抓包工具Fiddler
Fiddler下載地址:OneDrive-Fiddler-Setup_v5.0.20204.45441.zip
安裝設(shè)置完成后我們打開(kāi)瀏覽器。重新訪問(wèn)一下采集頁(yè)面,F(xiàn)iddler會(huì)抓到很多請(qǐng)求地址。
查看分析Post數(shù)據(jù)
Ctrl+F 我們搜索那個(gè)Ajax地址

Fiddler會(huì)以黃色將搜索到的結(jié)果顯示出來(lái),我們點(diǎn)擊一下他。

在Fiddler右側(cè)會(huì)顯示這個(gè)請(qǐng)求地址的相關(guān)詳細(xì)信息。

信息頂部可以看到是post請(qǐng)求方法。往下拉。
可以看到有我們請(qǐng)求的頁(yè)碼相關(guān)內(nèi)容。

訪問(wèn)不同頁(yè)碼的頁(yè)面,經(jīng)過(guò)研究發(fā)現(xiàn)規(guī)律。

currentPageIndex的值和頁(yè)碼相關(guān),值等于頁(yè)碼減一。我們?cè)L問(wèn)6139頁(yè)時(shí),currentPageIndex值是6138。
這就找到了規(guī)律,我們打開(kāi)火車頭采集器。
火車頭采集器配置分頁(yè)設(shè)置
起始網(wǎng)址填入Ajax請(qǐng)求地址

點(diǎn)“高級(jí)模式”。

點(diǎn)“分頁(yè)設(shè)置”,http請(qǐng)求方式“post”。

把我們Fiddler抓包獲取的內(nèi)容填進(jìn)去。

將currentPageIndex值的內(nèi)容替換成火車頭采集器的“分頁(yè)”標(biāo)簽。

下面填入頁(yè)碼。
頁(yè)面地址是從2200到6140,上面我們分析得出post請(qǐng)求內(nèi)容的currentPageIndex值是實(shí)際頁(yè)碼減一。所以這里面我們填2199到6139.

網(wǎng)址獲取選項(xiàng)設(shè)置
為了篩選出我們需要的內(nèi)容,我們?cè)O(shè)置一下網(wǎng)址獲取選項(xiàng)。
打開(kāi)瀏覽器F12開(kāi)發(fā)工具,預(yù)覽一下Ajax獲取的內(nèi)容。

可以看到鏈接的形式是
<ahref=\"/chengrenzikao/20200611152022.html\">自考成考報(bào)名條件有哪些?
完整的鏈接地址是
https://域名/chengrenzikao/20200611152022.html
那我們就可以使用下面的規(guī)則提取地址。

我們測(cè)試一下網(wǎng)址采集。
測(cè)試網(wǎng)址采集
點(diǎn)擊測(cè)試可能提示“post請(qǐng)求必須選擇網(wǎng)頁(yè)編碼”我們?cè)诨疖囶^其他設(shè)置中將編碼選為“UTF8”即可。

可以看到已經(jīng)正確獲取到了鏈接。不放心可以復(fù)制鏈接實(shí)際訪問(wèn)一下看看是否正確。

注意事項(xiàng)
采集過(guò)程注意運(yùn)行線程和請(qǐng)求間隔時(shí)間。教程在測(cè)試時(shí)因?yàn)殚_(kāi)的線程較多,頻率過(guò)高導(dǎo)致對(duì)方網(wǎng)站開(kāi)啟了防CC設(shè)置。拉黑了我一個(gè)服務(wù)器IP,此教程寫完用了兩臺(tái)服務(wù)器。
我們實(shí)際采集可以只開(kāi)1個(gè)線程,并設(shè)置合適的間隔時(shí)間,比如1000ms到1500ms左右。
本文來(lái)自2號(hào)站長(zhǎng)網(wǎng),轉(zhuǎn)載請(qǐng)注明出處:https://www.zz2zz.com/331414.html
申請(qǐng)創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!
