Nodejs 爬虫Github项目汇总

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.

Crawlab Team

你可能感兴趣的:(【杂记】)