资讯专栏INFORMATION COLUMN

Node实现穷人版小爬虫

wuyumin / 2081人阅读

摘要:在中使用核心模块和第三方模块实现穷人版网页小爬虫,以深圳市住房公积金管理中心信息公开网站为例。

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

    终端输出如下:

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/107398.html

相关文章

  • underscore 源码解读之 bind 方法的实现

    摘要:概括地讲,如果构造函数有返回值,且返回值是对象不能是,那么对其进行操作返回该对象,否则返回构造实例。所以在方法中,我们需要进一步判断这个构造函数有没有返回值,返回值是不是对象。 自从进入七月以来,我的 underscore 源码解读系列 更新缓慢,再这样下去,今年更完的目标似乎要落空,赶紧写一篇压压惊。 前文 跟大家简单介绍了下 ES5 中的 bind 方法以及使用场景(没读过的同学建...

    xiaodao 评论0 收藏0
  • 爬虫系列之一】爬虫开发环境的搭建

    摘要:当前分为版本,以及版本,这两个版本相互直接是不兼容的,但是当前世面的主流或者程序还是偏多,所以我这边主要是版本为基础,确切地说,是版本。下面来说说如何安装开发环境以及开发工具一环境的安装上安装如果你正在使用,系统是,系统自带了。 当前python分为2.x版本,以及3.x版本,这两个版本相互直接是不兼容的,但是当前世面的主流web或者程序还是2.x偏多,所以我这边主要是2.x版本为基础...

    Jochen 评论0 收藏0
  • php设计模式系列--观察者模式

    摘要:模式定义观察者模式定义对象间的一种一对多或一对一的依赖关系,当被观察者状态发生改变时,注册的观察者都会被通知。需要在系统中创建一个触发链,对象的行为将影响对象,对象的行为将影响对象,可以使用观察者模式创建一种链式触发机制。 showImg(https://segmentfault.com/img/bV1Wkq?w=301&h=167); 模式定义 观察者模式(observer patt...

    lykops 评论0 收藏0
  • node.js 89行爬虫爬取智联招聘信息

    摘要:智联其实一共写了两次,有兴趣的可以在源码看看,第一版的是回调版,只能一次一页的爬取。 写在前面的话,    .......还是不写了,直接上效果图。附上源码地址 github.lonhon showImg(https://segmentfault.com/img/bVUM3F?w=714&h=543);showImg(https://segmentfault.com/img/bVUM...

    _ivan 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<