七叶笔记 » golang编程 » go+chromedp高效的爬虫方式

go+chromedp高效的爬虫方式

对于爬虫,我们最关心的事情就是抓取的速度,而并发爬虫是最好提速的方式。而对于并发,golang有着天然的优势,通过goroutine我们可以轻松地写出并行爬虫来增加抓取速度。

chromedp

chromedp是一个golang编写的适用于Chrome DevTools Protocol的程序,通过它我们可以非常方便地操作浏览器,对于一些需要浏览器js解析的dom树,我们就可以使用chromedp来等待浏览器解析之后进行数据分析。

和phantomjs和selenium相比,chromedp不需要其它的依赖,一个 可执行文件 就可以直接调用访问无头chrome.

因为chromedp实现了chrome devtools protocol 协议,所以我们常用的点击,提交,上传,截图都是可以轻松使用代码来实现。

爬虫步骤

使用chromedp结合golang爬虫非常的方便,只要通过下面的步骤就可以轻松地抓取到任何我们可以访问的网页。

  • 重新初始化user-agent
  • 导航到需要抓取的页面
  • 滚动页面到底部
  • 等待页面加载完全
  • 抓取重要信息

golang+chrome+ google

我们知道chrome是 谷歌 研发的浏览器,而golang也是谷歌研发的 编程语言 ,而两者的结合chromedp可以说是强强联合的产品,因此它的速度可以说非常快。

chrome的cdp协议为各个语言的驱动提供了规范的接口,而这也是目前各个公司开发产品所追求的,就像 微软 为编辑器提供的LSP协议,大大减少了不必要的重复开发,大大加速了程序的开发效率。

相关文章