使用node写一个爬虫(原来使用node.js做爬虫如此简单!)

本文介绍如何利用npm中的Crawler模块从特定网站抓取数据,并将其存储到数据库中。通过实例化爬虫对象,设置最大连接数,定义回调函数处理每页数据,最后批量抓取指定范围内的网页。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);
}



效果图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值