今天给你们分享的是node爬虫,写得很差的你们多关照,指出javascript
背景交代,如下写的demo都是参照《python3网络爬虫开发实战》用node实现的,因此demo的具体思路什么的,你们能够去看书上的介绍,感兴趣的,能够去了解一波。java
[x] 3.4 猫眼电影抓取node
猫眼电影抓取,没什么难点,很是简单的一个实例。惟一要注意的地方就是正则吧(固然也能够用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
// 主要是有一个疑问,下面这段代码主要是判断文件存不存在,若是不存在的话抛异常再写入文件,可是总感受这种处理方式有问题,但愿能找到更合理的方法 try { fs.accessSync(file_path) console.warning('Already Downloaded', file_path) } catch (error) { response.data.pipe(fs.createWriteStream(file_path)) }
[x] 7.4 淘宝商品python
这里主要介绍的就是 puppeteer是 Google Chrome 团队官方的无界面(Headless)Chrome 工具, 经过puppeteer咱们很容易的模拟用户的操做
[x] 8 图片验证码识别git
这里主要注意的就是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地址github