node网络爬虫实例了解下?

发布时间:2019-10-14 09:21:25编辑:auto阅读(2197)

    今天给大家分享的是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地址

关键字