今天给大家分享的是node爬虫,写得不好的大家多关照,指出
背景交代,以下写的demo都是参照《python3网络爬虫开发实战》用node实现的,所以demo的具体思路什么的,大家可以去看书上的介绍,感兴趣的,可以去了解一波。
-
[x] 3.4 猫眼电影抓取
猫眼电影抓取,没什么难点,非常简单的一个实例。唯一要注意的地方就是正则吧(当然也可以用cheerio库来实现更简单,主要是为了实践下不同的方式)。因为python3有很多现成的方法,所以当用node去写的时候,可能要改变一下,具体的可以看源码
let re = /<dd>(?:\s.*?)*board-index.*?>(\d+)<\/i>(?:\s.*?)*data-src="(.*?)"(?:\s.*?)*name"><a.*?>(.*?)<\/a><\/p>\s*?<p class="star">\s*?(.*?)\s*?<\/p>(?:\s.*?)*releasetime">(.*?)<\/p>(?:\s.*?)*integer">(.*?)<\/i>.*?fraction">(.*?)<\/i>/g
- [x] 6.4 今日头条Ajax街拍图片抓取
// 主要是有一个疑问,下面这段代码主要是判断文件存不存在,如果不存在的话抛异常再写入文件,但是总感觉这种处理方式有问题,希望能找到更合理的方法
try {
fs.accessSync(file_path)
console.warning('Already Downloaded', file_path)
} catch (error) {
response.data.pipe(fs.createWriteStream(file_path))
}
-
[x] 7.4 淘宝商品
这里主要介绍的就是puppeteer是 Google Chrome 团队官方的无界面(Headless)Chrome 工具, 通过puppeteer我们很容易的模拟用户的操作
-
[x] 8 图片验证码识别
这里主要注意的就是node-tesseract库和gm,由于之前一开始用的是tesseract.js库,一直报错可以看下这两个问题issues1和issues2,后来改成node-tesseract就好了,我感觉也是因为墙的原因吧或者是配置的问题
// 可能把路径指向本地就好了,具体的没测试,后面再找找问题看
window.Tesseract = Tesseract.create({
workerPath: '/path/to/worker.js',
langPath: 'https://cdn.rawgit.com/naptha/tessdata/gh-pages/3.02/',
corePath: 'https://cdn.rawgit.com/naptha/tesseract.js-core/0.1.0/index.js',
})
后面还会更新其他的爬虫demo,希望本文对你有帮助github地址