国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

分享一個寫的node RSS爬蟲,以及主要實現流程

hiYoHoo / 3422人閱讀

摘要:前言為了更好分享和發布自己的內容,現在提供服務的網站和社區非常之多,現在基于,等平臺的爬蟲非常之多,所以結合高并發特性,自己用寫了一個爬蟲。簡介是一個持久的可配的爬蟲。結果演示一個抓取,,內容小時的輸出至點這里源碼地址這里,歡迎來,。

前言

為了更好分享和發布自己的內容,現在提供RSS服務的網站和社區非常之多,現在基于pythonjava等平臺的RSS爬蟲非常之多,所以結合node高并發特性,自己用node寫了一個RSS爬蟲——rss-worker

簡介

rss-worker是一個持久的可配的rss爬蟲。支持多URL的并行爬取,并且會將所有條目按時間順序進行保存,保存格式為"時間 標題 內容 "來供使用或分析,支持的保存方式有fsmongodb

結果演示

一個抓取https://github.com/alsotang.atomhttps://cnodejs.org/rsshttp://segmentfault.com/feeds/blogs內容24小時的輸出(2015/5/6 19:30至2015/5/7 19:30 ):

點這里

源碼地址:這里 , 歡迎來star,follow。

主要流程

爬取:并發地對所有指定URL使用superagent發送請求,并在所有URL全部爬取完畢后根據指定間隔再次發出爬取請求

結果更新:在內存中緩存了一個lastUpdate字段,與每次的爬取結果作比對

支持fsmongo存儲:利用persistence層提供統一接口,對外隱藏不同實現

安裝使用

直接通過npm:

SHELLnpm install rss-worker --save
示例
jsvar RssWorker = require("rss-worker");

var opt = {
  urls: ["https://cnodejs.org/rss", "https://github.com/DavidCai1993.atom", "http://segmentfault.com/feeds"],
  store: {
    type: "fs",
    dist: "./store/rss.txt"
  },
  timeout: 10
};

var rssWorker = new RssWorker(opt);
rssWorker.start();
API new RssWorker(options)

生成一個RssWorker的實例

options:

urls(Array) - 必選,需要抓取的rss地址的數組

store(Object) - 存儲方式,需要配置typedist兩屬性

type - 存儲方式,可選fs(默認)或mongodb

dist - 存儲結果的文件地址(將會自動創建),如:./store/rss.txt(fs),mongodb://localhost:27017/rss_worker(mongodb)

timeout(Number) - 每次抓取的間隔(秒),默認為60秒

start()

開始抓取

forceToEnd()

發出停止抓取信號,將不會繼續抓取,但不會影響到正在進行的本次抓取。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/85690.html

相關文章

  • NodeJs爬蟲抓取古代典籍,共計16000個頁面心得體會總結及項目分享

    摘要:目前這個爬蟲還是比較簡單的類型的,直接抓取頁面,然后在頁面中提取數據,保存數據到數據庫。總結寫這個項目其實主要的難點在于程序穩定性的控制,容錯機制的設置,以及錯誤的記錄,目前這個項目基本能夠實現直接運行一次性跑通整個流程。 前言 之前研究數據,零零散散的寫過一些數據抓取的爬蟲,不過寫的比較隨意。有很多地方現在看起來并不是很合理 這段時間比較閑,本來是想給之前的項目做重構的。后來 利用這...

    legendmohe 評論0 收藏0
  • 一只node爬蟲的升級打怪之路

    摘要:我是一個知乎輕微重度用戶,之前寫了一只爬蟲幫我爬取并分析它的數據,我感覺這個過程還是挺有意思,因為這是一個不斷給自己創造問題又去解決問題的過程。所以這只爬蟲還有登陸知乎搜索題目的功能。 我一直覺得,爬蟲是許多web開發人員難以回避的點。我們也應該或多或少的去接觸這方面,因為可以從爬蟲中學習到web開發中應當掌握的一些基本知識。而且,它還很有趣。 我是一個知乎輕微重度用戶,之前寫了一只爬...

    shiweifu 評論0 收藏0
  • Docker 入門與實踐

    摘要:使用推出的語言開發實現,基于內核的,,以及等技術。初步了解容器與虛擬機的區別原理不同上圖是關于和傳統虛擬機區別的截圖。從而實現模擬更改鏡像的作用。下面的實踐以為例,。指令讓外界能通過容器的端口進行網絡通信。使用可以啟動關閉容器。 Docker 是一個能讓程序跑在一個它無法感知的、用于隔絕外界環境里的容器的工具。 Docker 簡介 最初是 dotCloud 公司創始人 Solomon ...

    Keagan 評論0 收藏0
  • Docker 入門與實踐

    摘要:使用推出的語言開發實現,基于內核的,,以及等技術。初步了解容器與虛擬機的區別原理不同上圖是關于和傳統虛擬機區別的截圖。從而實現模擬更改鏡像的作用。下面的實踐以為例,。指令讓外界能通過容器的端口進行網絡通信。使用可以啟動關閉容器。 Docker 是一個能讓程序跑在一個它無法感知的、用于隔絕外界環境里的容器的工具。 Docker 簡介 最初是 dotCloud 公司創始人 Solomon ...

    Render 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<