概述

chromedp包是一种更快、更简单的方式来驱动支持Chrome DevTools协议的浏览器,无需外部依赖(如Selenium或PhantomJS)。

  • 安装
  • 范例

应用场景

  • 爬取对象国外网站数据-目前拿电商网站作为测试对象
  • 数量级别每日亿级

问题

  • 国外网站网络因素
  • ip代理
  • 数据量级别较大时,采用分布式爬取策略
  • Golang爬虫框架成熟度(基本单机爬虫),对项目的兼容性,扩展,维护,时间成本等

架梯子,购买目前国家可用区服务器。本地电脑vpn。

ip代理,测试了国内很多ip支持国外ip住宅、独享,暂不选择。国外代理找了几家暂时没有测试。ip代理的成本问题考虑,如果绕过代理,必然会引起其他问题 爬取速度最为明显。再者ip的命中率、稳定性因素,例如amazon反扒机制(封IP、返回假数据)。目前选择chromedp进行测试。

Golang的爬虫框架使用colly,简约还不错,但是不支持分布式,以及依赖ip代理,暂不考虑。py在爬虫这块比较成熟,社区稳定,自己的计划还是继续研读实践Go语言不做考虑,掌握思想,工具不是问题的原则,其利弊不做赘述。

范例

ExampleDescription
click2使用选择器点击元素
click使用选择器点击元素
cookie对请求设置HTTP cookie
emulate模拟一个特定的设备,比如iPhone
eval计算javascript并检索结果
headers设置请求的HTTP报头
keys向元素发送键事件
logic比简单动作更复杂的逻辑
remote连接到现有的Chrome DevTools实例使用远程WebSocket URL
screenshot截取特定元素和整个浏览器视图的屏幕截图
submit填写并提交表单
text2从特定元素中提取文本
text从特定元素中提取文本
upload在表单上上传文件
visible等待,直到元素可见