使用node寫一個爬蟲(原來使用node.js做爬蟲如此簡單!)
阿新 • • 發佈:2018-12-30
npm中有一個crawler模組是專門用來爬取資料的,可以上別人的網站爬取的資料儲存在資料庫中,程式碼使用過程如下:
// 匯入模組 mysql
const mysql=require('mysql');
// 匯入模組 Crawler
const Crawler=require('Crawler');
//建立資料庫連線
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : 'root',
database : 'test'
});
//例項化爬蟲物件
let num=0;
var c = new Crawler({
maxConnections : 10,
// This will be called for each crawled page
callback : function (error, res, done) {
if(error){
console.log(error);
}else{
var $ = res.$;
// $ is Cheerio by default
$ ('#feed-main-list li').each((index,element)=>{
// 標題
let title=$(element).find('.z-feed-title a').text();
let content=$(element).find('.z-feed-img img').attr('src');
var post = {title,content};
connection.query('INSERT INTO smzdm26 SET ?' , post, function (error, results, fields) {
if (error) throw error;
num++;
console.log("已插入"+num+"條資料");
});
})
}
done();
}
});
// 爬取資料
// Queue just one URL, with default callback
for(let i=0;i<5000;i++){
c.queue('https://post.smzdm.com/p'+i);
}
效果圖: