node.js爬虫推荐
https://dan-suciu.medium.com/web-scraping-in-node-js-top-7-best-tools-67f451fcfda3
python爬虫scrapy更新一直很频繁, 直到最近还在有更新, 可能因为如此, 所以很多网站都有针对性反爬措施.
上文推荐了7个基于node.js的爬虫. 下面按是否基于浏览器技术分类:
基于浏览器技术的爬虫
JSDom, 自实现的一个无头浏览器, 跟PhantomJs比较接近. 意图是纯JS实现Web标准. 5个月前更新.
Puppeteer, 谷歌开发的用于控制chrome的高级API
PlayWright, 据说是跟Puppeteer一个团队, 这个除了chrome外还可以控制firefox和safari, 目的是统一浏览器控制. 本意是浏览器自动化测试工具. 目前挂在微软名下, 到现在都还有更新. 也因为挂着微软,所以在vscode中有插件使用.
Nightmare, 基于ELectron, 可模拟用户操作. 本来是用来对无API网站跨站点自动化访问用的, 现在多用于自动化测试和爬虫. 三年前更新
基于HTTP Request的爬虫
Axios, 其实就是http request的优化, 当然也很好用
CheerIO, 用来做选择器, 语法和Jquery类似.
X-ray. 这是一个实际意义的爬虫, 和其他不同, 这个开发来就是做爬虫的. 但是好几年都不更新了.
Osmosis. 也是爬虫, 感觉和x-ray类似. 同样好几年不更新了.
在线爬虫服务
webscrapingapi, 本质是收费运营的, 但还是有一些免费的api.
对比
基于浏览器的爬虫和基于http request的爬虫区别在于, 前者会运行js, 做css渲染, 后者不会. 因此前者比较慢, 但接近或达到人工浏览, 能更好应对反爬, 后者速度快, 但可能应对反爬困难.