如何進行chrome中的動態(tài)爬蟲分析以及環(huán)境搭建

今天就跟大家聊聊有關如何進行chrome中的動態(tài)爬蟲分析以及環(huán)境搭建,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)公司長期為1000+客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為恭城企業(yè)提供專業(yè)的網(wǎng)站設計制作、成都網(wǎng)站設計,恭城網(wǎng)站改版等技術服務。擁有10多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

一:概述

       動態(tài)爬蟲和靜態(tài)爬蟲,n多年前web網(wǎng)站都是響應靜態(tài)的html頁面,也就是我們發(fā)生http請求到服務端,完后讀取響應就可以獲取到我們要的數(shù)據(jù),但是隨著web的發(fā)展,各種前端框架層出不群,之前的爬蟲方案已經(jīng)完全不適用,抓到的頁面有可能是下面這個樣子,如圖:

如何進行chrome中的動態(tài)爬蟲分析以及環(huán)境搭建

這種情況就需要我們能動態(tài)去執(zhí)行頁面上的js,拿到最終的html。

        動態(tài)渲染肯定離不開瀏覽器(除非自己去解析html,css,js),google開源了chromium瀏覽器,我們有自定義的需求可以更改它的源代碼來實現(xiàn),同時我們要和瀏覽器交互需要一個協(xié)議,google也把這個協(xié)議開源出來了,Chrome DevTools Protocol有了這個協(xié)議我們就可以去和瀏覽器打交道了。最后就是選擇一門趁手的編程語言,由于是學習的原因,所以來個google全家桶吧,選擇golang作為開發(fā)語言。開發(fā)庫選擇幾乎是標配的chromedp,萬事具備,最后再提一下 headless 是個啥,就是chrome的一種運行模式,我們平時都是需要有界面的使用,但是當爬蟲使用的時候就不需要界面了,開發(fā)過程中也可以跑在非headless模式下,方便查看瀏覽器在干什么。

附: 

cdp: https://chromedevtools.github.io/devtools-protocol/

chromium: https://www.chromium.org/

chromedp: https://github.com/chromedp/chromedp

二:開發(fā)環(huán)境


       安裝瀏覽器略過,安裝完之后確保路徑里能找到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"

完后命令行執(zhí)行,能看到版本信息就證明ok了

λ ~/ chrome --versionGoogle Chrome 84.0.4147.89

創(chuàng)建一個golang的項目(go mod),如下:

如何進行chrome中的動態(tài)爬蟲分析以及環(huán)境搭建

附上我的go.mod的依賴(大部分庫是使用起來方便,比如讀取配置文件的,命令行的,根據(jù)個人愛好來就行)

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)

到現(xiàn)在準備的步驟就基本做完了,接下來該熟悉一下庫和cdp了。

三:chrome開啟協(xié)議監(jiān)控


可以窗口可以查看開發(fā)者工具和chrome的交互過程,方便我們參考學習,打開方式如下:

首先打開chrome的開發(fā)者工具,如下:


如何進行chrome中的動態(tài)爬蟲分析以及環(huán)境搭建

完后點擊這個設置,到下面的頁面

如何進行chrome中的動態(tài)爬蟲分析以及環(huán)境搭建

勾選協(xié)議監(jiān)控,完后再console中,記得顯示一下 console  drawer,如下

如何進行chrome中的動態(tài)爬蟲分析以及環(huán)境搭建

完后勾選下面的協(xié)議監(jiān)控就能看見了

如何進行chrome中的動態(tài)爬蟲分析以及環(huán)境搭建

注:開發(fā)者工具其實就是基于cdp協(xié)議開發(fā)的

如何進行chrome中的動態(tài)爬蟲分析以及環(huán)境搭建

Method方法里面的東西對應的就是cdp協(xié)議官網(wǎng)里面的domain,如下:

如何進行chrome中的動態(tài)爬蟲分析以及環(huán)境搭建

看完上述內容,你們對如何進行chrome中的動態(tài)爬蟲分析以及環(huán)境搭建有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

文章標題:如何進行chrome中的動態(tài)爬蟲分析以及環(huán)境搭建
網(wǎng)頁路徑:http://muchs.cn/article48/joghep.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設、企業(yè)網(wǎng)站制作、品牌網(wǎng)站制作網(wǎng)站改版、響應式網(wǎng)站、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司