爬虫相关工具
本文最后更新于:2023年8月9日 晚上
爬虫相关工具
1、最早的时候,我是用基本的 urllib.request 这种库请求网页,然后截取页面内容实现简单的爬虫
如果遇到需要填写输入框的页面就没用了
2、selenium 配合 无头浏览器 Phantomjs
Selenium是一个自动化测试的web应用程序,能做到用代码控制浏览器,比如表单填写,鼠标单击
拖拽,执行js脚本,截图等等,但是它需要借助WebDriver工具来实现
Phantomjs是一个无头浏览器,所谓无头就是代码控制浏览器访问数据,不需要显示出来,这样爬虫效率也高,内存消耗也低,Selenium+Phantomjs 配合就能实现自动化测试或者爬虫的完整步骤
3、 ChromeDriver新的无头浏览器
Phantomjs慢慢的不更新了,后来新版本的Selenium干脆抛弃了Phantomjs,不支持了,新的ChromeDriver
就成了替代品,区别是ChromeDriver提供了一个窗口,用来监控代码运行的事件,是完全模仿浏览器行为的
4、 Pyppeteer新的爬虫工具
Selenium+ChromeDriver模式运行起来,配置比较麻烦,运行效率也低,再则就是,这个模式运行了很多年,不少系统已经针对Selenium执行了反爬虫,新的替代品出现了,Pyppeteer,它配置起来相对简单,执行效率也高,虽然只支持 Chromium,但是也够用了。
Pyppeteer 其实是 Puppeteer 的 Python 版本,是个日本工程师维护的,而且更新的也慢,所以bug不少
5、 Puppeteer
Puppeteer是一个Node库,它提供了一个高级 API 来通过 DevTools 协议控制 Chromium 或 Chrome。Puppeteer 默认以 headless 模式运行,但是可以通过修改配置文件运行“有头”模式。
我们可以使用Puppeteer完成以下工作:
- 访问页面,进行截图
- 找到页面元素,比如输入框,模拟键盘输入,提交表单
- 模拟点击等用户操作
- 等等等等。。