成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Node實(shí)現(xiàn)窮人版小爬蟲

wuyumin / 2092人閱讀

摘要:在中使用核心模塊和第三方模塊實(shí)現(xiàn)窮人版網(wǎng)頁(yè)小爬蟲,以深圳市住房公積金管理中心信息公開網(wǎng)站為例。

????在Node中使用核心模塊http和第三方模塊cheerio實(shí)現(xiàn)窮人版網(wǎng)頁(yè)小爬蟲,以“深圳市住房公積金管理中心-信息公開”網(wǎng)站為例。

????目標(biāo)網(wǎng)頁(yè)如下:

????目標(biāo)網(wǎng)頁(yè)數(shù)據(jù)的dom結(jié)構(gòu)如下:

????示例代碼如下:

var http = require("http");
var cheerio = require("cheerio"); //類似JQ的第三方模塊
var url = "http://www.szzfgjj.com/xxgk/tjxx/"; //深圳市住房公積金管理中心-信息公開

//爬取網(wǎng)頁(yè)數(shù)據(jù)
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");
});

//過濾數(shù)據(jù)
function filterData(html){
    var $ = cheerio.load(html); //裝載dom
    var crawlData = []; //存儲(chǔ)爬蟲數(shù)據(jù)
    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;
}

//輸出數(shù)據(jù)
function printData(crawlData = []){
    crawlData.forEach(item => {
        console.log(`題目:${item.title}  --  地址:${item.addr}  --  編號(hào):${item.id}`);
    });
}

????終端輸出如下:

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/107398.html

相關(guān)文章

  • underscore 源碼解讀之 bind 方法的實(shí)現(xiàn)

    摘要:概括地講,如果構(gòu)造函數(shù)有返回值,且返回值是對(duì)象不能是,那么對(duì)其進(jìn)行操作返回該對(duì)象,否則返回構(gòu)造實(shí)例。所以在方法中,我們需要進(jìn)一步判斷這個(gè)構(gòu)造函數(shù)有沒有返回值,返回值是不是對(duì)象。 自從進(jìn)入七月以來,我的 underscore 源碼解讀系列 更新緩慢,再這樣下去,今年更完的目標(biāo)似乎要落空,趕緊寫一篇壓壓驚。 前文 跟大家簡(jiǎn)單介紹了下 ES5 中的 bind 方法以及使用場(chǎng)景(沒讀過的同學(xué)建...

    xiaodao 評(píng)論0 收藏0
  • 爬蟲系列之一】爬蟲開發(fā)環(huán)境的搭建

    摘要:當(dāng)前分為版本,以及版本,這兩個(gè)版本相互直接是不兼容的,但是當(dāng)前世面的主流或者程序還是偏多,所以我這邊主要是版本為基礎(chǔ),確切地說,是版本。下面來說說如何安裝開發(fā)環(huán)境以及開發(fā)工具一環(huán)境的安裝上安裝如果你正在使用,系統(tǒng)是,系統(tǒng)自帶了。 當(dāng)前python分為2.x版本,以及3.x版本,這兩個(gè)版本相互直接是不兼容的,但是當(dāng)前世面的主流web或者程序還是2.x偏多,所以我這邊主要是2.x版本為基礎(chǔ)...

    Jochen 評(píng)論0 收藏0
  • php設(shè)計(jì)模式系列--觀察者模式

    摘要:模式定義觀察者模式定義對(duì)象間的一種一對(duì)多或一對(duì)一的依賴關(guān)系,當(dāng)被觀察者狀態(tài)發(fā)生改變時(shí),注冊(cè)的觀察者都會(huì)被通知。需要在系統(tǒng)中創(chuàng)建一個(gè)觸發(fā)鏈,對(duì)象的行為將影響對(duì)象,對(duì)象的行為將影響對(duì)象,可以使用觀察者模式創(chuàng)建一種鏈?zhǔn)接|發(fā)機(jī)制。 showImg(https://segmentfault.com/img/bV1Wkq?w=301&h=167); 模式定義 觀察者模式(observer patt...

    lykops 評(píng)論0 收藏0
  • node.js 89行爬蟲爬取智聯(lián)招聘信息

    摘要:智聯(lián)其實(shí)一共寫了兩次,有興趣的可以在源碼看看,第一版的是回調(diào)版,只能一次一頁(yè)的爬取。 寫在前面的話,    .......還是不寫了,直接上效果圖。附上源碼地址 github.lonhon showImg(https://segmentfault.com/img/bVUM3F?w=714&h=543);showImg(https://segmentfault.com/img/bVUM...

    _ivan 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<