Node.js 网站内容抓取及Mysql存取Demo

var DBUtils = {
    //新增
    _insert: function (client, insertSQLString, value) {
        client.query(insertSQLString, value, function (error, results) {
            if (error) {
                console.log("ClientReady Error:" + error.message);
                client.end();
                return;
            } else {
                console.log("Inserted:" + results.affectedRows + " row.");
                console.log("Insert success...");

            }
        });
    },
    //查询
    _select: function (client, selectSQLString) {
        client.query(selectSQLString, function (error, results, fields) {
            if (error) {
                console.log("GetData Error:" + error.message);
                client.end();
                return;
            }

            if (results.length > 0) {
                var firstResult, resultSet = '';

                for (var i = 0; i < results.length; i++) {
                    firstResult = results[i];
                    resultSet += "ID:" + firstResult["ID"] + ' Name:' + firstResult["Name"] + " PWD:" + firstResult["PWD"] + "\n";
                }
                console.log(resultSet);
            }
        });
    },
    //更新
    _update: function (client, updateSQLString) {
        client.query(updateSQLString, function (error, results) {
            if (error) {
                console.log("ClientReady Error:" + error.message);
                client.end();
                return;
            }

            console.log("Update success...");
        });
    },
    //删除
    _delete: function (client, deleteSQLString) {
        client.query(deleteSQLString, function (error, results) {
            if (error) {
                console.log("ClientReady Error:" + error.message);
                client.end();
                return;
            }

            console.log("Delete success...");
        });
    }
};

exports._insert = DBUtils._insert;
exports._select = DBUtils._select;
exports._update = DBUtils._update;
exports._delete = DBUtils._delete;
 
///山西政府采购网公示招标信息爬取///
var request = require('request');
var cheerio = require('cheerio');
var db = require("./DBUtils.js")

var list_url = 'http://www.ccgp-shanxi.gov.cn/view.php?nav=100';
var view_url = 'http://www.ccgp-shanxi.gov.cn/view.php?nid='

var myDate = new Date();
//当前日期
var currDate = myDate.getFullYear()+"-"+myDate.getMonth()+"-"+myDate.getDate();
//来源
var from_ = "山西政府采购网";
//分类
var cate1 = "政采信息";

var mysql      = require('mysql');
var client = mysql.createConnection({
  host     : 'localhost',
  user     : 'app',
  password : 'app',
  database : 'test'
});

client.connect();

request(list_url, function (error, res, body) {
    if (!error && res.statusCode == 200) {
//        console.log("body:", body);
        var $ = cheerio.load(body);
        var trs = $('#node_list tbody tr');
        //循环tr
        var i = 0;
        trs.each(function(index,element){
            var startDate = $(this).children().children("#sdate"+i).val();
            var endDate = $(this).children().children("#fdate"+i).val();
            var title = $(this).children().children("a").attr("title");
            var viewUrl = $(this).children().children("a").attr("href");
            var orid = viewUrl.substr(viewUrl.indexOf("=")+1,viewUrl.length);
            viewUrl = view_url + orid;
            var area = $(this).children().next().text();
            
            db._insert(client, "insert into news set title=?,from_=?,detail=?,getDate=?,publicDate=?,remark=?,cate1=?", [title, from_, viewUrl,currDate, startDate,"结束于"+endDate, cate1]);  

            console.log("title==="+title);

            i++;
        });

        client.end();
    }
})
 

转载于:https://my.oschina.net/wowlinda/blog/550801

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值