Gearapy的介绍和使用

Evernote Export
Gerapy的介绍
  • 分布式的爬虫部署和管理工具,基于scrapy、scrapyd、scrapyd-API、Django、Vue.js
Gerapy的使用
  • Gerapy的安装
    • pip3 install gerapy
  • Gerapy应用步骤
    • 1.初始化Gerapy
      • gerapy init
        • 执行完毕之后,本地便会生成一个名字为 gerapy 的文件夹,接着进入该文件夹,可以看到有一个 projects 文件夹,我们后面会用到。
    • 2.初始化数据库
      • cd gerapy
      • gerapy migrate
        • 会在 gerapy 目录下生成一个 SQLite 数据库,同时建立数据库表。
    • 3.启动Gerapy
      • gerapy runserver
        • 这样我们就可以看到 Gerapy 已经在 8000 端口上运行了。接下来我们在浏览器中打开 http://localhost:8000/,就可以看到 Gerapy 的主界面了
  • 使用Gerapy管理项目
    • 主机管理
      • 我们可以点击左侧 Clients 选项卡,即主机管理页面,添加我们的 Scrapyd 远程服务,点击右上角的创建按钮即可添加我们需要管理的 Scrapyd 服务。
      • 需要添加 IP、端口,以及名称,点击创建即可完成添加,点击返回即可看到当前添加的 Scrapyd 服务列表
      • 添加主机前后
      • 这样我们可以在状态一栏看到各个 Scrapyd 服务是否可用,同时可以一目了然当前所有 Scrapyd 服务列表,另外我们还可以自由地进行编辑和删除。
    • 项目管理
      • Gerapy 的核心功能当然是项目管理,在这里我们可以自由地配置、编辑、部署我们的 Scrapy 项目,点击左侧的 Projects ,即项目管理选项,我们可以看到如下空白的页面:
      • 将项目拖动到刚才 gerapy 运行目录的 projects 文件夹下,例如我这里写好了一个 Scrapy 项目,这时刷新页面,我们便可以看到 Gerapy 检测到了这个项目,同时它是不可配置、没有打包的
      • 这时我们可以点击部署按钮进行打包和部署,在右下角我们可以输入打包时的描述信息,类似于 Git 的 commit 信息,然后点击打包按钮,即可发现 Gerapy 会提示打包成功,同时在左侧显示打包的结果和打包名称
      • 打包成功之后,我们便可以进行部署了,我们可以选择需要部署的主机,点击后方的部署按钮进行部署,同时也可以批量选择主机进行部署,示例如下
    • 监控任务
      • 部署完毕之后就可以回到主机管理页面进行任务调度了,任选一台主机,点击调度按钮即可进入任务管理页面,此页面可以查看当前 Scrapyd 服务的所有项目、所有爬虫及运行状态
      • 我们可以通过点击新任务、停止等按钮来实现任务的启动和停止等操作,同时也可以通过展开任务条目查看日志详情
    • 编辑项目
      • 同时 Gerapy 还支持项目编辑功能,有了它我们不再需要 IDE 即可完成项目的编写,我们点击项目的编辑按钮即可进入到编辑页面,如图所示
    • CrawlSpider代码自动生成
      • 在 Scrapy 中,其实提供了一个可配置化的爬虫 CrawlSpider,它可以利用一些规则来完成爬取规则和解析规则的配置,这样可配置化程度就非常高,这样我们只需要维护爬取规则、提取逻辑就可以了。如果要新增一个爬虫,我们只需要写好对应的规则即可,这类爬虫就叫做可配置化爬虫。
      • Gerapy 可以做到:我们写好爬虫规则,它帮我们自动生成 Scrapy 项目代码。
      • 我们可以点击项目页面的右上角的创建按钮,增加一个可配置化爬虫,接着我们便可以在此处添加提取实体、爬取规则、抽取规则了,例如这里的解析器,我们可以配置解析成为哪个实体,每个字段使用怎样的解析方式,如 XPath 或 CSS 解析器、直接获取属性、直接添加值等多重方式,另外还可以指定处理器进行数据清洗,或直接指定正则表达式进行解析等等,通过这些流程我们可以做到任何字段的解析。
      • 再比如爬取规则,我们可以指定从哪个链接开始爬取,允许爬取的域名是什么,该链接提取哪些跟进的链接,用什么解析方法来处理等等配置。通过这些配置,我们可以完成爬取规则的设置。
      • 最后点击生成按钮即可完成代码的生成。
      • 生成的代码示例结果如图所示,可见其结构和 Scrapy 代码是完全一致的。

Gerapy新增功能和Docker部署
上面的介绍当然都是人家开发好的,下面介绍下我给gerapy增加的很高效的功能
  • 1.项目本地上传
    • 在project界面增加了选择项目select(需要提前打成zip包),和项目上传(upload)功能,可以直接将本地的项目上传的gerapy, 就不需要手动将代码去放到服务器上了
  • 2.批量启动和批量停止
    • 在schedule界面, 如果想要一次启动多个爬虫进程可以点击run some来一起启动多个,即快速又准确又方便,另外也可以点击爬虫名称后面的stop 批量停止爬虫进程
  • 3.docker快速部署
    • 这部分去我的dockerhub找我的dockerfile吧

刘小恺(Kyle) wechat
如有疑问可联系博主