基於nodejs爬蟲
阿新 • • 發佈:2018-11-28
爬介面資料
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);
})
})