如何进行chrome中的动态爬虫分析以及环境搭建

发布时间:2021-12-10 16:37:20 作者:柒染
来源:亿速云 阅读:169

今天就跟大家聊聊有关如何进行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中的动态爬虫分析以及环境搭建有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

推荐阅读:
  1. Python如何使用Chrome插件实现爬虫
  2. Python爬虫助力Chrome插件有哪些

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

chrome

上一篇:如何进行Revit二次开发环境平台的搭建

下一篇:html下拉列表如何做的

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》