在Node中使用核心模块http和第三方模块cheerio实现穷人版网页小爬虫,以“深圳市住房公积金管理中心-信息公开”网站为例。
目标网页如下:
目标网页数据的dom结构如下:
示例代码如下:
var http = require("http");
var cheerio = require("cheerio"); //类似JQ的第三方模块
var url = "http://www.szzfgjj.com/xxgk/tjxx/"; //深圳市住房公积金管理中心-信息公开
//爬取网页数据
http.get(url, res => {
var html = "";
res.on("data", data => html += data);
res.on("end", () => {
// console.log(html);
var crawlData = filterData(html);
printData(crawlData);
});
}).on("error", () => {
console.log("some error occured");
});
//过滤数据
function filterData(html){
var $ = cheerio.load(html); //装载dom
var crawlData = []; //存储爬虫数据
var lis = $(".MLlist").find("ul>li");
lis.each(function(){
var li = $(this);
var obj = {
title: li.attr("svalue"),
addr: li.children("a").attr("href").split("/")[1],
id: li.children("a").attr("id")
}
crawlData.push(obj);
});
return crawlData;
}
//输出数据
function printData(crawlData = []){
crawlData.forEach(item => {
console.log(`题目:${item.title} -- 地址:${item.addr} -- 编号:${item.id}`);
});
}
终端输出如下:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。