今天尝试在windows中使用scrapyd+gerapy部署爬虫

首先需要部署scrapyd完成部署

先安装以下两个包:

  • scrapyd服务:pip install scrapyd
  • scrapyd客户端:pip install scrapyd-client
    然后就可以在scrapy项目的路径下使用scrapyd命令启动scrapyd的监控界面。

再编辑scrapy项目根目录下的scrapy.cfg文件如下:

[settings]
default = JD.settings
# :号后自定义部署名
[deploy:JD_book]
# scrapyd运行的服务器地址,此处为本地的6800端口
url = http://localhost:6800/
# 项目名
project = JD

实际使用时需要把#号的注释全部删除。
配置完成后就可以部署爬虫应用了
使用命令:scrapyd-deploy 部署名(配置文件中设置的名称) -p 项目名称 即可,对应的我的命令为:scrapyd-deploy JD_book -p JD

但此时出现了报错:

‘scrapyd-deploy’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

解决办法如下:

在python安装目录的scripts目录中,添加scrapyd-deploy.bat文件,内容包含你的python.exe路径和scripts目录中的scrapyd-deploy路径,我的编辑内容如下:

@echo off
 
"C:UserswoyueAppDataLocalProgramsPythonPython36python.exe" "C:UserswoyueAppDataLocalProgramsPythonPython36Scriptsscrapyd-deploy" %1 %2 %3 %4 %5 %6 %7 %8 %9

如果你也有相同问题,只需将如上中的两个路径替换为你本机中的路径即可解决。
重新运行scrapyd-deploy -h命令检查,发现已经可以顺利运行了。

然后使用gerapy部署

使用gerapy部署更加便于操作和管理,不需要使用curl命令或者requests模块请求API接口来启动或暂停爬虫程序。
部署gerapy方法如下:

    1. 安装:pip install gerapy
    1. 执行 gerapy init命令,在指定目录中初始化gerapy项目文件夹
    1. 进入生成的gerapy/projects目录下,执行gerapy migrate命令,完成数据库迁移,使用的是SQLite数据库。
    1. 执行gerapy runserver命令,启动gerapy服务,默认将在
      127.0.0.1:8000端口运行主机管理和界面管理服务,在浏览器中访问该端口即可。

      image.png
    1. 点击create添加新的scrapyd主机
image.png
    1. 添加scrapyd成功后,点击Clients中调度-运行即可直接俄运行爬虫程序,你可以点击多次run运行多个分布式爬虫实例
      图为正在gerapy上运行的爬虫程序:
image.png
    1. 项目管理
      直接将爬虫的scrapy项目文件夹拷贝到之前创建的gerapy/projects目录中,然后进入项目管理界面,即可看到已经显示了此项目文件。点击部署-添加描述-打包即可直接完成打包和部署。管理多个远程爬虫项目十分方便。

文章来源于互联网:scrapyd+gerapy部署分布式爬虫及scrapyd-deploy报错处理

发表评论