Python 爬蟲實戰 3

目錄

抓包方法

Fiddler

Fiddler 工作原理

安裝方法

配置 Fiddler 

項目:使用抓包分析獲取騰訊視頻評論數據

開始抓包分析

抓包過程分析

按照上面流程,每次觸發一個頁面,觀察複製的 url 的規律

代碼部分


第三講:抓包分析技術精講(課程筆記)

抓包方法

方法1: 

進入網頁,F12 ---> Network,訪問某個網頁,出現很多數據包,我們要獲取和分析的就是這些數據包【如下圖】。

但是這樣抓包的缺點:雜內容多,跳轉快速,不太好做分析,因此建議用抓包工具。

方法2:抓包工具 fiddler。

--問:抓包工具有許多,爲什麼選擇 fiddler ?

--答:Fiddler 相對比較方便。

Fiddler

Fiddler 工作原理

抓包,即將網絡細節展現出來。

正常狀態:網頁/用戶【發請求給】服務器,服務器【響應給】網頁/用戶。

有 Fiddler 後:網頁/用戶【發請求給】fiddler, fiddler【再給】服務器。同樣,服務器相應也是經過fiddler給網頁/用戶響應。

所以,Fiddle 相當於一臺代理服務器,它的IP地址是127.0.0.1,端口是8888。

安裝方法

官網下載:https://www.telerik.com/download/fiddler

自定義目錄,按步驟安裝即可。

打開軟件的窗口界面,左邊黑色的部分可以輸入各種命令,現在只要知道 clear 清空界面命令。

配置 Fiddler 

課程視頻內容有點老了,視頻中老師的博文也打不開了。我百度配置的。課程建議 Fiddler 和 某個固定的瀏覽器綁定設置便於分析,我用的是QQ瀏覽器。

  1. 打開安裝好的fiddle,點擊 Tools---Options。
  2. fiddler 默認是隻抓取http的,修改一下 HTTPS 設置,可以抓取到https

     3. 設置connection,端口號默認爲8888,可修改,但需注意:一是本機空閒端口,二是代理設置時端口保持一致。

我的這個端口提示被 python進程使用,我就隨便用了一個端口 8887.

項目:使用抓包分析獲取騰訊視頻評論數據

隨便選一個電視劇,本文選用《清平樂》底下的評論。

看到好多評論。

點擊觀看《清平樂》,在該頁面右擊查看網頁源代碼,搜索網頁評論。Ctrl + F 打開搜索框複製一個評論,發現找不到,說明評論被隱藏了,此時不能爬取,必須通過抓包分析。【如下圖,,查找結果是0】

開始抓包分析

第一步,暫停視頻,清空(clear 命令)fiddler。

第二步,翻評論,出來的就最新的評論信息。

Json 裏面一般是文字信息。查看textView。因此,看 “content”信息就是評論數據。

抓包過程分析

(1)查看最先開始的短評 和 當前頁面的最底部評論:

一直到

(2)點“查看更多評論”觸發評論,出現json信息,自己複製鏈接,並查看 textview 是否對的上。

Fiddler 中第28個是新觸發產生的json文件。

檢查觸發後的內容是否對的上(接着上頁):

fiddler 頁面第28的內容是新觸發的評論內容,複製該鏈接:https://video.coral.qq.com/varticle/5041463513/comment/v2?callback=_varticle5041463513commentv2&orinum=10&oriorder=o&pageflag=1&cursor=6653291461930496749&scorecursor=0&orirepnum=2&reporder=o&reppageflag=1&source=132&_=1589556999403

(3)查看當前頁面結尾內容,再次觸發一個頁面。

再次觸發操作後。

檢查對應Fiddler第80 個json 文件,複製鏈接。

https://video.coral.qq.com/varticle/5041463513/comment/v2?callback=_varticle5041463513commentv2&orinum=10&oriorder=o&pageflag=1&cursor=6653290281292019066&scorecursor=0&orirepnum=2&reporder=o&reppageflag=1&source=132&_=1589556999404

按照上面流程,每次觸發一個頁面,觀察複製的 url 的規律

觀察 url 規律,如果沒有規律就需要同時查看 textView 界面,觀察相關參數,總之就是找規律,找隱藏的參數。

【1】

https://video.coral.qq.com/varticle/5041463513/comment/v2?callback=_varticle5041463513commentv2&orinum=10&oriorder=o&pageflag=1&cursor=6653291461930496749&scorecursor=0&orirepnum=2&reporder=o&reppageflag=1&source=132&_=1589556999403

【2】

https://video.coral.qq.com/varticle/5041463513/comment/v2?callback=_varticle5041463513commentv2&orinum=10&oriorder=o&pageflag=1&cursor=6653290281292019066&scorecursor=0&orirepnum=2&reporder=o&reppageflag=1&source=132&_=1589556999404

【3】

https://video.coral.qq.com/varticle/5041463513/comment/v2?callback=_varticle5041463513commentv2&orinum=10&oriorder=o&pageflag=1&cursor=6654735786308025259&scorecursor=0&orirepnum=2&reporder=o&reppageflag=1&source=132&_=1589556999405

【4】

https://video.coral.qq.com/varticle/5041463513/comment/v2?callback=_varticle5041463513commentv2&orinum=10&oriorder=o&pageflag=1&cursor=6654045810793234182&scorecursor=0&orirepnum=2&reporder=o&reppageflag=1&source=132&_=1589556999406

標爲紅色的部分是變化的部分。在Fiddler 中觀察【3】的 “last” 參數如下,估計【3】之後的鏈接內容,cursor等於後面的內容是"last"的值,如下面鏈接【4】

-發現變換的部分是cursor【沒有規律】 和 最後一個(視頻博主說最後一個參數無關緊要,也可以每次+1)。

所以cursor是重要參數。發現last字段中等於該cursor。

所以,可以推論鏈接【5】的cursor部分是上一個,即【4】的 last的值。

推論鏈接如下:

https://video.coral.qq.com/varticle/5041463513/comment/v2?callback=_varticle5041463513commentv2&orinum=10&oriorder=o&pageflag=1&cursor=6655033871589428389&scorecursor=0&orirepnum=2&reporder=o&reppageflag=1&source=132&_=1589556999407

觸發新的一頁後,查看鏈接如下,發現和推論一致。

https://video.coral.qq.com/varticle/5041463513/comment/v2?callback=_varticle5041463513commentv2&orinum=10&oriorder=o&pageflag=1&cursor=6655033871589428389&scorecursor=0&orirepnum=2&reporder=o&reppageflag=1&source=132&_=1589556999407

代碼部分

代碼很簡單,可以參考本人主頁的 “Python 爬蟲 ?”系列文章的分析模式進行分析編寫。若有興趣可以去我的CSDN資源下載【騰訊視頻評論爬蟲】。

結果輸出:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章