NodeJS爬虫初探

思路:

       获取HTML字符串,将其转化为DOM,提取相应的文本信息


使用到了以下方法或库
var https = require('https');  //这里使用的是https协议,可视具体情况换为http协议
var fs = require("fs")
var cheerio = require('cheerio')
1.	获取HTML
function getHTML(URL, callback) {
  var originHTML = ''
  var req = https.request(URL, (res) => {
    console.log(`STATUS: ${res.statusCode}`);
    res.setEncoding('utf8');

    res.on('data', (chunk) => {
      originHTML += chunk
    });
    res.on('end', () => {
      console.log('No more data in response.');
      callback(originHTML)
    });
  });
  req.on('error', (e) => {
    console.error(`1 request's problem: ${e.message}`);
  });
  req.end();
}
2.	也可先将原始的HTML存到本地再用cheerio解析
读写文件分为两种操作,异步和同步
//读
function readFile(path,callback,type){
  if(type===""){
    fs.readFile(path,function(err,data){
      if(err) throw err
      callback(data)
    })
  }else if(type==="sync"){
    callback(fs.readFileSync(path))
  }else{
    console.log("请指定type类型.异步为'',同步为'sync'")
  }

}

//写
function writeFile(fileName,data,type){
  if(type===""){ //默认为异步
    fs.writeFile(fileName,data,function(err){
      if(err) throw err
    })

  }else if(type==="sync"){
    fs.writeFileSync(fileName,data)
  }else{
    console.log("请指定type类型.异步为'',同步为'sync'")
  }
}
3.	使用cheerio.js   (nodejs中的jQuery)
function HTML2DOM(HTML){
  var $=cheerio.load(HTML)
  var aAll=$("a")
  aAll.each(function(){
    var a=$(this)
    //do something here
  })
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值