1. 程式人生 > >基於nodejs爬蟲

基於nodejs爬蟲

爬介面資料

var https = require('https');
https.get('https://api.readhub.cn/topic?lastCursor=76823&pageSize=20',function(res,req){
var html='';
    res.on('data',function(data){
        html+=data;
    });
    res.on('end',function(){
        console.info(html);
})
console.log(html);
})

爬頁面資料

var https = require('https');
const hupuUrl = 'https://bbs.hupu.com/selfie';
https.get(hupuUrl,function(res,req){
var html='';
    res.on('data',function(data){
        html+=data;
    });
    res.on('end',function(){
        console.info(html);
})
console.log(html);
})


另一種方式:
SuperAgent
superagent它是一個強大並且可讀性很好的輕量級ajaxAPI,是一個關於HTTP方面的一個庫,而且它可以將鏈式寫法玩的出神入化
api res.text包含為被解析的響應資料

var superagent = require('superagent');
superagent .get('/api') //這裡的URL也可以是絕對路徑 
.end(function(req,res){ 
//do something 
//res.text包含為被解析的響應資料
})

superagent .get('/api') 
.set({ 'Referer':'https://www.google.com', 'Accept':'image/webp,image/*,*/*;q=0.8' })
 .end(function(req,res){ //do something })

cheerio
用法jQuery的用法差不多。
就是先將頁面的資料load進來形成一個特定的資料格式,然後通過類似jq的語法,對資料進行解析處理)

var cheerio = require('cheerio'), 
$ = cheerio.load('<h2 class="title">Hello world</h2>');
 $('h2.title').text('Hello there!'); 
$('h2').addClass('welcome');


var superagent = require('superagent');
var cheerio = require('cheerio');

var url1 = 'https://www.dbmeinv.com/'
//這裡的URL也可以是絕對路徑
superagent.get(url1)
.end(function(req,res){
//do something
    console.log(res.text)

    $ = cheerio.load(res.text);
    console.log($('.height_min').length)
    $('.height_min').each(function(v,key){
        console.log(v,$(key).attr('src'));
    })


})

使用SuperAgent 和 cheerio具體例子
先安裝 兩個模組
npm i SuperAgent -S
npm i cheerio -S

var superagent = require('superagent');//引入superagent模組
var cheerio = require('cheerio');//引入cheerio模組
superagent .get('https://www.dbmeinv.com') //這裡的URL也可以是絕對路徑 
.end(function(req,res){ 
//do something 
//res.text包含為被解析的響應資料
console.log(res.text);
$ = cheerio.load(res.text);
$('.height_min').each(function(index,value){//找到頁面中你想要的資料的類名.height_min,這裡是圖片的類名
    var src = $(value).attr('src');
    console.log(src);
})
})