1

今天给大家分享的是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
// 主要是有一个疑问,下面这段代码主要是判断文件存不存在,如果不存在的话抛异常再写入文件,但是总感觉这种处理方式有问题,希望能找到更合理的方法
    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库,一直报错可以看下这两个问题issues1issues2,后来改成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地址


2ming
162 声望1 粉丝

前端实践以及资料整理 [链接]