概述
chromedp包是一种更快、更简单的方式来驱动支持Chrome DevTools协议的浏览器,无需外部依赖(如Selenium或PhantomJS)。
- 安装
- 范例
应用场景
- 爬取对象国外网站数据-目前拿电商网站作为测试对象
- 数量级别每日亿级
问题
- 国外网站网络因素
- ip代理
- 数据量级别较大时,采用分布式爬取策略
- Golang爬虫框架成熟度(基本单机爬虫),对项目的兼容性,扩展,维护,时间成本等
架梯子,购买目前国家可用区服务器。本地电脑vpn。
ip代理,测试了国内很多ip支持国外ip住宅、独享,暂不选择。国外代理找了几家暂时没有测试。ip代理的成本问题考虑,如果绕过代理,必然会引起其他问题 爬取速度最为明显。再者ip的命中率、稳定性因素,例如amazon反扒机制(封IP、返回假数据)。目前选择chromedp进行测试。
Golang的爬虫框架使用colly,简约还不错,但是不支持分布式,以及依赖ip代理,暂不考虑。py在爬虫这块比较成熟,社区稳定,自己的计划还是继续研读实践Go语言不做考虑,掌握思想,工具不是问题的原则,其利弊不做赘述。
范例
| Example | Description |
|---|---|
| click2 | 使用选择器点击元素 |
| click | 使用选择器点击元素 |
| cookie | 对请求设置HTTP cookie |
| emulate | 模拟一个特定的设备,比如iPhone |
| eval | 计算javascript并检索结果 |
| headers | 设置请求的HTTP报头 |
| keys | 向元素发送键事件 |
| logic | 比简单动作更复杂的逻辑 |
| remote | 连接到现有的Chrome DevTools实例使用远程WebSocket URL |
| screenshot | 截取特定元素和整个浏览器视图的屏幕截图 |
| submit | 填写并提交表单 |
| text2 | 从特定元素中提取文本 |
| text | 从特定元素中提取文本 |
| upload | 在表单上上传文件 |
| visible | 等待,直到元素可见 |
|---|