521xueweihan / HelloGitHub

:octocat: 分享 GitHub 上有趣、入门级的开源项目。Share interesting, entry-level open source projects on GitHub.
https://hellogithub.com
90.72k stars 9.56k forks source link

spiderman 通用分布式爬虫框架 [自荐项目] #1268

Closed TurboWay closed 4 years ago

TurboWay commented 4 years ago

项目推荐

  1. 增加将附件直接下载到 hdfs 的通用管道
  1. 自动建表

  2. 自动生成爬虫代码,只需编写少量代码即可完成分布式爬虫

  3. 自动存储元数据,分析统计和补爬都很方便

  4. 适合多站点开发,每个爬虫独立定制,互不影响

  5. 调用方便,可以根据传参自定义采集的页数以及启用的爬虫数量

  6. 扩展简易,可以根据需要选择采集模式,单机 standalone (默认) 或者 分布式cluster

  7. 采集数据落地方便,支持多种数据库,只需在 spider 中启用相关的管道

    关系型

    • [x] mysql
    • [x] sqlserver
    • [x] oracle
    • [x] postgresql
    • [x] sqlite3

    非关系型

    • [x] hbase
    • [x] mongodb
    • [x] elasticsearch
    • [x] hdfs
    • [x] hive
    • [x] datafile, 比如 csv
  8. 反爬处理简易,已封装各种反爬中间件

    • [x] 随机 UserAgent
    • [x] 定制请求头 Headers
    • [x] 定制 Cookies
    • [x] 定制代理 ip
    • [x] 在 scrapy 中使用 requests
    • [x] Payload 请求
    • [x] 使用 Splash 渲染 js
521xueweihan commented 4 years ago

我有个小建议:你是否可以加入我们的讲解开源系列,来一个 scrapy 讲解系列(然后加上数据落地部分)

项目地址:https://github.com/HelloGitHub-Team/Article

我是这么看: scrapy 作为通用型框架,数据存储交给用户自定义和选择,作为框架是正确的。如果是把所有的存储三方库都集成进去难免会让项目依赖过多,然而更多的场景可能只是输出到一个 kafka(吞吐量),交给大数据专门去做数据落地。我觉得你可以专攻数据落地这一块的组件,灵活配置易于扩展。