您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關如何進行chrome中的動態爬蟲分析以及環境搭建,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
一:概述
動態爬蟲和靜態爬蟲,n多年前web網站都是響應靜態的html頁面,也就是我們發生http請求到服務端,完后讀取響應就可以獲取到我們要的數據,但是隨著web的發展,各種前端框架層出不群,之前的爬蟲方案已經完全不適用,抓到的頁面有可能是下面這個樣子,如圖:
這種情況就需要我們能動態去執行頁面上的js,拿到最終的html。
動態渲染肯定離不開瀏覽器(除非自己去解析html,css,js),google開源了chromium瀏覽器,我們有自定義的需求可以更改它的源代碼來實現,同時我們要和瀏覽器交互需要一個協議,google也把這個協議開源出來了,Chrome DevTools Protocol有了這個協議我們就可以去和瀏覽器打交道了。最后就是選擇一門趁手的編程語言,由于是學習的原因,所以來個google全家桶吧,選擇golang作為開發語言。開發庫選擇幾乎是標配的chromedp,萬事具備,最后再提一下 headless 是個啥,就是chrome的一種運行模式,我們平時都是需要有界面的使用,但是當爬蟲使用的時候就不需要界面了,開發過程中也可以跑在非headless模式下,方便查看瀏覽器在干什么。
附:
cdp: https://chromedevtools.github.io/devtools-protocol/
chromium: https://www.chromium.org/
chromedp: https://github.com/chromedp/chromedp
二:開發環境
安裝瀏覽器略過,安裝完之后確保路徑里能找到chrome,我的mac下 .zshrc 加入如下幾行:
# chromealias chrome="/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome"alias chrome-canary="/Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary"alias chromium="/Applications/Chromium.app/Contents/MacOS/Chromium"
完后命令行執行,能看到版本信息就證明ok了
λ ~/ chrome --versionGoogle Chrome 84.0.4147.89
創建一個golang的項目(go mod),如下:
附上我的go.mod的依賴(大部分庫是使用起來方便,比如讀取配置文件的,命令行的,根據個人愛好來就行)
module github.com/anyeshe/caterpillargo 1.14require ( github.com/chromedp/cdproto v0.0.0-20200709115526-d1f6fc58448b github.com/chromedp/chromedp v0.5.3 github.com/fsnotify/fsnotify v1.4.9 // indirect github.com/go-playground/universal-translator v0.17.0 // indirect github.com/gobwas/pool v0.2.1 // indirect github.com/gobwas/ws v1.0.3 // indirect github.com/leodido/go-urn v1.2.0 // indirect github.com/mitchellh/go-homedir v1.1.0 github.com/mitchellh/mapstructure v1.3.2 // indirect github.com/panjf2000/ants/v2 v2.4.1 // indirect github.com/pelletier/go-toml v1.8.0 // indirect github.com/spf13/afero v1.3.2 // indirect github.com/spf13/cast v1.3.1 // indirect github.com/spf13/cobra v1.0.0 github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/viper v1.7.0 go.uber.org/zap v1.15.0 golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae // indirect golang.org/x/text v0.3.3 // indirect gopkg.in/go-playground/validator.v9 v9.31.0 gopkg.in/ini.v1 v1.57.0 // indirect)
到現在準備的步驟就基本做完了,接下來該熟悉一下庫和cdp了。
三:chrome開啟協議監控
可以窗口可以查看開發者工具和chrome的交互過程,方便我們參考學習,打開方式如下:
首先打開chrome的開發者工具,如下:
完后點擊這個設置,到下面的頁面
勾選協議監控,完后再console中,記得顯示一下 console drawer,如下
完后勾選下面的協議監控就能看見了
注:開發者工具其實就是基于cdp協議開發的
Method方法里面的東西對應的就是cdp協議官網里面的domain,如下:
看完上述內容,你們對如何進行chrome中的動態爬蟲分析以及環境搭建有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。