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


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


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

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

Fiddler會以黃色將搜索到的結(jié)果顯示出來,我們點擊一下他。

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

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

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

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

點“高級模式”。

點“分頁設(shè)置”,http請求方式“post”。

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

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

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

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

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

我們測試一下網(wǎng)址采集。
測試網(wǎng)址采集
點擊測試可能提示“post請求必須選擇網(wǎng)頁編碼”我們在火車頭其他設(shè)置中將編碼選為“UTF8”即可。

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

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