国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

node實(shí)現(xiàn)的爬蟲(chóng)功能示例

2019-11-19 13:55:11
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文實(shí)例講述了node實(shí)現(xiàn)的爬蟲(chóng)功能。分享給大家供大家參考,具體如下:

node是服務(wù)器端的語(yǔ)言,所以可以像python一樣對(duì)網(wǎng)站進(jìn)行爬取,下面就使用node對(duì)博客園進(jìn)行爬取,得到其中所有的章節(jié)信息。

第一步: 建立crawl文件,然后npm init。

第二步: 建立crawl.js文件,一個(gè)簡(jiǎn)單的爬取整個(gè)頁(yè)面的代碼如下所示:

var http = require("http");var url = "http://www.cnblogs.com";http.get(url, function (res) {  var html = "";  res.on("data", function (data) {    html += data;  });  res.on("end", function () {    console.log(html);  });}).on("error", function () {  console.log("獲取課程結(jié)果錯(cuò)誤!");});

即引入http模塊,然后利用http對(duì)象的get請(qǐng)求,即一旦運(yùn)行,相當(dāng)于node服務(wù)器端發(fā)送了一個(gè)get請(qǐng)求請(qǐng)求這個(gè)頁(yè)面,然后通過(guò)res返回,其中on綁定data事件用來(lái)不斷地接受數(shù)據(jù),最后end時(shí)我們就在后臺(tái)打印出來(lái)。

這只是整個(gè)頁(yè)面的一部分,我們可以在此頁(yè)面審查元素,發(fā)現(xiàn)確實(shí)是一樣的

我們只需要將其中的章節(jié)title和每一小節(jié)的信息爬到即可。

第三步: 引入cheerio模塊,如下:(在gitbash中安裝即可,cmd總是出問(wèn)題)

cnpm install cheerio --save-dev

這個(gè)模塊的引入,就是為了方便我們操作dom,就像jQuery一樣。

第四步: 操作dom,獲取有用信息。

var http = require("http");var cheerio = require("cheerio");var url = "http://www.cnblogs.com";function filterData(html) {  var $ = cheerio.load(html);   var items = $(".post_item");  var result = [];  items.each(function (item) {    var tit = $(this).find(".titlelnk").text();    var aut = $(this).find(".lightblue").text();    var one = {      title: tit,      author: aut    };    result.push(one);  });  return result;}function printInfos(allInfos) {  allInfos.forEach(function (item) {    console.log("文章題目 " + item["title"] + '/n' + "文章作者 " + item["author"] + '/n'+ '/n');  });}http.get(url, function (res) {  var html = "";  res.on("data", function (data) {    html += data;  });  res.on("end", function (data) {    var allInfos = filterData(html);    printInfos(allInfos);  });}).on("error", function () {  console.log("爬取博客園首頁(yè)失敗")});

即上面的過(guò)程就是在爬取博客的題目和作者。

最終后臺(tái)輸出如下:

這和博客園首頁(yè)的內(nèi)容是一致的:

希望本文所述對(duì)大家nodejs程序設(shè)計(jì)有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 神农架林区| 景谷| 合作市| 松桃| 浮梁县| 陕西省| 南召县| 枝江市| 闽侯县| 崇左市| 汤阴县| 绥阳县| 敦煌市| 黄骅市| 张北县| 新民市| 郓城县| 隆尧县| 宁化县| 顺昌县| 上思县| 孝义市| 乌恰县| 中牟县| 灵璧县| 晴隆县| 台江县| 武清区| 黄骅市| 新兴县| 邵阳市| 万安县| 元朗区| 鸡东县| 台北县| 康平县| 铁岭市| 延安市| 红桥区| 山东| 平江县|