Nodejs 爬蟲Github項目彙總
DistributedCrawler
nodejs_crawler
node.js主從分佈式爬蟲
- 採用Redis爲任務隊列服務
- 主程序獲取任務
- 從程序獲得數據並下載
- 通過代理接口獲取數據
headless-chrome-crawler
特徵
- 分佈式抓取
- 配置併發性,延遲和重試
- 支持深度優先搜索和廣度優先搜索算法
- 可插拔的緩存存儲,如Redis
- 支持導出結果的CSV和JSON行
- 在最大請求時暫停並在任何時候恢復
- 自動插入jQuery進行刮取
- 保存抓取證據的截圖
- 仿真設備和用戶代理
- 優先隊列提高抓取效率
- 服從robots.txt
- 跟隨sitemap.xml
x-ray
基於Node.js 的HTML 內容抓取工具。
特點:
- 靈活的架構:支持字符串,數組,對象數組和嵌套對象結構。
- 可組合: API完全可組合,爲您提供了每頁抓頁的靈活性。
- 分頁支持:通過網站分頁,抓取每一頁。
- 抓取工具支持:從一頁開始,輕鬆移動到下一頁。在廣度優先爬行每個頁面之後,流程是可預測的。
- 負責任:支持併發,限制,延遲,超時和限制,以幫助您負責任地抓取任何頁面。
- 可插拔驅動程序:根據您的需要切換不同的
node-crawler
1)node-crawler邏輯是利用bottleneck任務調度器,將接收到的多個url當作多個任務添加至隊列進行執行。
2)使用cheerio、jsdom或者whacko解析html。
Floodesh
node-crawler的分佈式版本 floodesh ,即,將crawler維護的queue 改爲分佈式DB MongoDB,增加了主機index與客戶端worker,分別負責任務調度與爬取工作。
supercrawler
自動爬取網頁,維護一個隊列(FIFO, db, redisDb)。可自定義處理器解析content。遵循robots.txt、速率和併發限制。
js-crawler
按照depth爬取以及確定何時停止。
支持 HTTP and HTTPS 協議。
使用Executor來限制任務處理速率(==未理解)。
爬取時使用3個隊列:
1)knownUrls:已經訪問過的Url ,格式類似於:{‘https://www.baidu.com/’: true, ‘https://tieba.baidu.com/index.html?traceid=’: false};
2)crawledUrls:已經爬取過的Url;
3)_currentUrlsToCrawl:待爬取的Url隊列。
simplecrawler
SQLite-simplecrawler-queue
boloto
easier http crawler by Node.js
roboto
bot-marvin
cnblogSpider
基於nodejs 的博客園爬蟲項目.
node-fetch
A light-weight module that brings window.fetch to Node.js
fetch
mercury-parser
水星項目(麗姐參考)
html-extractor
從html字符串中提取meta-data(body, title, meta-tags, h1).
parse5
HTML parsing/serialization toolset for Node.js.