# node-spider **Repository Path**: cysir/node-spider ## Basic Information - **Project Name**: node-spider - **Description**: 基于nodejs的轻量级爬虫框架,抓取html,json数据。api简单容易上手,非常适合定向数据抓取。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 6 - **Created**: 2019-04-30 - **Last Updated**: 2022-06-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # node-spider #### 介绍 基于nodejs的通用爬虫框架,得益于nodejs的高性能异步io,爬虫的执行效率非常高。目前版本仅支持http/https协议,可以设置header属性和cookie会话保持,暂时还不支持代理。在下一个版本中会加入代理和更多的网络协议支持。写的不够好请多指教,有问题直接法Issues谢谢大家。 #### 软件架构 该框架主要分为调度器(node-shceduler) 下载器(node-downloader) 请求(node-request) 结果(node-response) 爬虫(node-spider) 数据抽取(node-pipeline)。 程序运行时:'调度器'从爬虫抽取'请求'或者'结果',如果是'请求'交给'下载器',如果是对象则交给node-pipeline保存数据。 #### 安装教程 1. git clone https://gitee.com/cysir/node-spider.git 2. sudo npm link node-spider 3. cd node-spider && sudo npm install -g #### 使用说明 1. spider-cli create xxx #创建项目,xxx为爬虫名 2. crawl xxx #运行项目 xxx为爬虫名 注意!运行项目时爬虫的目录应该为当前目录的子目录 3. spider里的parse方法的参数response.selector使用的是cheerio的解析库,可以参考cheerio的文档:https://www.npmjs.com/package/cheerio #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 写在最后 刚接触nodejs不久就被它强大的异步IO特性所吸引。五一就在构思nodejs作为一个jsvascript的运行环境是不是可以直接解析动态网页呢,再加上异步io似乎非常的适合爬虫程序(最后证明要解析动态网页还得使用其他办法)。我在网上略微搜索了一下,貌似基于nodejs的爬虫框架并不多,而我也正想试试nodejs的异步io爬虫和java的多线程爬虫到底熟强熟弱,所以就有了node-spider这个框架。终于在五一的第三天实现了一个粗糙的简版爬虫框架,非常欢迎有兴趣的coder参与到其中来。项目中附带一个zyw的爬虫demo:) ### 2019年5月7日 更新 重写了下载器,使用队列管理请求: 爬虫增加了并行的控制和请求失败的重试机制,可以在config.json里设置最大并发访问的请求,重试次数,重试的时间间隔