中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行chrome中的動態爬蟲分析以及環境搭建

發布時間:2021-12-10 16:37:20 來源:億速云 閱讀:171 作者:柒染 欄目:大數據

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

一:概述

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

如何進行chrome中的動態爬蟲分析以及環境搭建

這種情況就需要我們能動態去執行頁面上的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),如下:

如何進行chrome中的動態爬蟲分析以及環境搭建

附上我的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的開發者工具,如下:


如何進行chrome中的動態爬蟲分析以及環境搭建

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

如何進行chrome中的動態爬蟲分析以及環境搭建

勾選協議監控,完后再console中,記得顯示一下 console  drawer,如下

如何進行chrome中的動態爬蟲分析以及環境搭建

完后勾選下面的協議監控就能看見了

如何進行chrome中的動態爬蟲分析以及環境搭建

注:開發者工具其實就是基于cdp協議開發的

如何進行chrome中的動態爬蟲分析以及環境搭建

Method方法里面的東西對應的就是cdp協議官網里面的domain,如下:

如何進行chrome中的動態爬蟲分析以及環境搭建

看完上述內容,你們對如何進行chrome中的動態爬蟲分析以及環境搭建有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西宁市| 茌平县| 千阳县| 东明县| 黑河市| 河西区| 安化县| 峨山| 乐安县| 日照市| 关岭| 沈阳市| 岳阳市| 通海县| 合水县| 乡宁县| 乌兰浩特市| 峨眉山市| 西吉县| 土默特右旗| 枝江市| 资中县| 北流市| 巨野县| 常熟市| 冀州市| 民丰县| 六枝特区| 炉霍县| 万年县| 浑源县| 墨脱县| 长泰县| 武功县| 江山市| 仲巴县| 甘南县| 桂平市| 苏尼特左旗| 南川市| 嘉义县|