Nodejs实现简单爬虫,将爬到的数据以json数据格式保存到MySQL数据库中

Nodejs实现简单爬虫,将爬到的数据以json数据格式保存到MySQL数据库中

目标:
在浏览器中访问http://localhost:3000/时,输出(http://www.pm25.in/chengdu)的所有检测点的信息,以json的格式,查询自己的数据库中的表,其内容也是所有检测点的信息。
知识点:
1、使用superagent抓取网页
superagent是个http方面的库,可以发起get或者post请求
2、使用cheerio 分析网页
大家可以理解成一个node.js版的jQuery,用来从网页中以
css selector 取数据,使用方式跟jQuery是一模一样的。
3、使用MySQL保存数据
详细步骤:
1、建立项目工程文件夹reptile
Nodejs实现简单爬虫,将爬到的数据以json数据格式保存到MySQL数据库中_第1张图片
2、安装依赖 ,主要安装superagent , cheerio, mysql
如下:
npm install –save superagent
npm install – save cheerio
npm install –save mysql
安装成功之后,会自动生成node_module文件夹,里面包含这三个文件。
3、在reptile文件下新建一个app.js,里面的主要逻辑是这样的,详细代码可下载。

    app.get('/',function(req,res,next){
        //用superagent去抓取网页的内容
        superagent.get('http://www.pm25.in/chengdu')
        .end(function(err,sres){
          //常规的错误处理
             if(err){
                 return next(err);
             }
 //sres.text 里面存储着网页的HTML内容,将它传给  //cheerio.load之后就就可以得到一个实现了jQuery接口的变
 //量,习惯性的命名为$
    var$ =cheerio.load(sres.text);
    var json="["
   $('#detail-data').each(function(i,n){
        //获取行
         var tr=$(n);
         //表中每一行的具体值
         var tr_val=tr.text();
         //利用正则表达式对获取的字符串进行一些处理,
         //如去掉一些空格符,换行符等
         //对数据进行一些遍历和构建,此处省去。。。。
     });
        });
    });

抓取的数据格式,table表,如图:
Nodejs实现简单爬虫,将爬到的数据以json数据格式保存到MySQL数据库中_第2张图片
生成json数据,如图
Nodejs实现简单爬虫,将爬到的数据以json数据格式保存到MySQL数据库中_第3张图片
MySQL数据库中,如图
Nodejs实现简单爬虫,将爬到的数据以json数据格式保存到MySQL数据库中_第4张图片
代码下载地址:
完整代码

你可能感兴趣的:(Nodejs实现简单爬虫,将爬到的数据以json数据格式保存到MySQL数据库中)