在Node中使用核心模块http和第三方模块cheerio实现穷人版网页小爬虫,以“深圳市住房公积金管理中心-信息公开”网站为例。html
目标网页以下:dom
目标网页数据的dom结构以下:网站
示例代码以下:ui
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}`); }); }
终端输出以下:this