node.js做爬虫

今天面试的时候,问到了我用node.js做爬虫,然后我竟然忘记了,怎么去爬的,然后导致很尴尬,现在再梳理一次爬虫的过程。

首先,引入这些包

let rp = require("request-promise");
let cheerio = require("cheerio");
var MongoClient = require('mongodb').MongoClient;
let htmlDecode = require('./htmlDecode');
let fs = require("fs");   
let iconv=require('iconv-lite') 
let http=require("http");

htmlDecode 用于字符转换

cheerio是nodejs的抓取页面模块,为服务器特别定制的,快速、灵活、实施的jQuery核心实现。适合各种Web爬虫程序。

async function getCourseInfo(db) {
    for (let offset = 2; offset < 6; offset ++) {
        let res = await rp({url: `https://tuchong.com/rest/sites/1615439,1615432,1615443,1615461,1615437/posts?count=10&page=${offset}&before_timestamp=1516669276`});
        let state = JSON.parse(htmlDecode(res))
        console.log(state);
        db.collection("course").insert(state);
    }
}

这里的async和await有一篇文章写的很好
https://segmentfault.com/a/1190000011813934

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.1. 谁在用Nodejs? 从Nodejs官方网站的企业登记页(https://github.com/joye...
    许你一枝花阅读 2,890评论 0 0
  • 001、新换的苹果电脑表格不会使用,专门跑到苹果店请教,立马就会了,困扰了好久的问题解决了,心得:你看起来很麻烦的...
    林子Amy阅读 1,014评论 0 0