一.安装
pip3 install -U gerapy
使用python3.68版本安装gerapy,报错提示:ModuleNotFoundError: No module named 'setuptools_rust'
解决方法更新pip3
pip3 install --upgrade pip
安装后,测试是否安装成功:
[root@iZwz927xptl8kw8zqrmwvcZ bin]# gerapy Usage: gerapy [-v] [-h] ... Gerapy 0.9.10 - Distributed Crawler Management Framework Optional arguments: -v, --version Get version of Gerapy -h, --help Show this help message and exit
二.初始化
在当前目录下创建gerapy工作目录
[root@iZwz927xptl8kw8zqrmwvcZ local]# pwd /usr/local [root@iZwz927xptl8kw8zqrmwvcZ local]# gerapy init Initialized workspace gerapy [root@iZwz927xptl8kw8zqrmwvcZ local]# ls aegis bin etc games gerapy include lib lib64 libexec sbin share src
数据库初始化,这将生成一个 SQLite 数据库,该数据库将用于保存每个主机的配置信息、部署版本、定时任务等。最后一行创建了一个dbs文件夹
[root@iZwz927xptl8kw8zqrmwvcZ local]# cd gerapy [root@iZwz927xptl8kw8zqrmwvcZ gerapy]# ls logs projects [root@iZwz927xptl8kw8zqrmwvcZ gerapy]# gerapy migrate Operations to perform: Apply all migrations: admin, auth, authtoken, contenttypes, core, django_apscheduler, sessions Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK ... [root@iZwz927xptl8kw8zqrmwvcZ gerapy]# pwd /usr/local/gerapy [root@iZwz927xptl8kw8zqrmwvcZ gerapy]# ls dbs logs projects
创建用户
[root@iZwz927xptl8kw8zqrmwvcZ gerapy]# gerapy initadmin No Admin user exists, create temp admin user Created admin account: admin(admin@gerapy.com), initial password: admin, just use it temporarily and change the pass word for safety
修改用户信息参考:https://www.cnblogs.com/MrHSR/p/16505221.html
三. 启动服务
启动服务命令
gerapy runserver 0.0.0.0:8000 > /dev/null 2>&1 &
在浏览器中打开http://localhost:8000进入Gerapy
四.主机管理
登录进入Gerapy,主机管理-->创建, 下面是连接了本机的scrapyd服务,还可以配置多个服务器的scrapyd服务,进行统一管理
五.项目管理
Gerapy的工作目录下有一个空的projects文件夹,也就是存放Scrapy目录的文件夹。
如果我们要部署 Scrapy 项目,只需将项目文件放在项目文件夹中即可。
可以手动上传到projects目录下,也可以使用git上传参考:https://www.cnblogs.com/MrHSR/p/16505022.html
打包项目,点击打包成功如下所示:
上面打包成功后,点击部署,就部署成功了
通过postman查看,有了一个时间截版本号
六. 调试
总结:在打包egg文件上,使用Gerapy可视化界面打包方便,轻松部署到多台scrapyd服务器上。 另一个打包是在开发环境,使用 scrapyd-deploy打包上传到指定的scrapyd服务器上。二种方案都可以,用gerapy统一管理比较好。