浏览器自动化,一般涉及到这些任务:
- 需要跟浏览器做交互,比如点按钮、输入文本等
- 截图、生成 PDF
- 比较复杂的爬虫,比如爬 AJAX 动态生成的网站
通用的思路:
- 利用浏览器插件 / UserScript,在浏览器层面解决
- 利用 Headless Chrome 搭配编程库(如 puppeteer)来实现
- 我现在熟练的是 puppeteer,但 nightmare 似乎也是个很好的工具
- Chrome 插件 segmentio/daydream 可以根据你的操作生成 nightmare 或者 puppeteer 脚本
- 相对弱的方案是,利用按键精灵等非 Web 平台的工具来做,可能在一些场景更简单粗暴
生成 PDF 的解决方案,参考 141 期的 CodeTengu,里面提到了 wkhtmltopdf
以及 WeasyPrint
(参考),暂不深入。