欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python信息系统(Scrapy分布式+Django前后端)-4.Gerapy爬虫分布式部署

程序员文章站 2022-06-04 10:06:59
...

原创不易,转载请标明出处,谢谢。

该项目全部内容Link
Python信息系统(Scrapy分布式+Django前后端)-1.项目介绍篇
Python信息系统(Scrapy分布式+Django前后端)-2.Scrapy配置篇
Python信息系统(Scrapy分布式+Django前后端)-3.Scrapy抓取篇
Python信息系统(Scrapy分布式+Django前后端)-4.Gerapy爬虫分布式部署
Python信息系统(Scrapy分布式+Django前后端)-5.数据清洗和处理篇
Python信息系统(Scrapy分布式+Django前后端)- 6.Django新闻系统展示篇
Python信息系统(Scrapy分布式+Django前后端)- 7.Django内容后台管理系统配置篇
Python信息系统(Scrapy分布式+Django前后端)- 8.Django内容后台管理系统管理模块篇
Python信息系统(Scrapy分布式+Django前后端)- 9.Django前台Web展示部署
Python信息系统(Scrapy分布式+Django前后端)- 10.Django前台HTML功能
爬虫我们按照之前的内容写好了之后保证所有spider文件可以执行就可以了。接下来我们部署到远程的服务器上然后进行定时执行。

接下来的部分有点坑要注意:

  1. Gerapy的django版本是1.x,后面前后端分离的系统是3.x所以不兼容,有能力的童鞋自行修改对应源码即可,如果懒得修改的话直接弄2台机器吧。
  2. 部署服务器的话需要开一个端口进行远程访问,切记不要开6800裸奔。
  3. 远程服务器配置和scrapy配置版本要相同。

部署效果

Python信息系统(Scrapy分布式+Django前后端)-4.Gerapy爬虫分布式部署
Python信息系统(Scrapy分布式+Django前后端)-4.Gerapy爬虫分布式部署
Python信息系统(Scrapy分布式+Django前后端)-4.Gerapy爬虫分布式部署
Python信息系统(Scrapy分布式+Django前后端)-4.Gerapy爬虫分布式部署

部署流程

必备库安装

gerapy 安装

pip install gerapy

scrapyd 安装

pip install scrapyd

创建工作的文件目录,该目录下初始化项目(文件名随意)用命令行执行

gerapy init

初始化数据库

cd gerapy
gerapy migrate

Python信息系统(Scrapy分布式+Django前后端)-4.Gerapy爬虫分布式部署
创建超级用户(记住用户名和密码)

gerapy initadmin

然后就可以启动服务了,启动服务(可指定url和port)

gerapy runserver 你的ip+端口(0.0.0.0:8000)
scrapyd 或者 /usr/local/python3/bin/scrapyd

进入管理平台(浏览器输入) 举例这样在本地打开

http://127.0.0.1:8000

这个地方有点坑,网上很多教程没有用户名密码创建登陆过程,不创建用户无法使用。

主机管理

  1. 创建主机名称(机器名称:能区分出来就行)
  2. 创建主机IP(IP网段:略)
  3. 创建主机端口(端口号:一般默认6800)
  4. 认证:目前这个用户名对和错都能正常运行
    Python信息系统(Scrapy分布式+Django前后端)-4.Gerapy爬虫分布式部署

项目管理

  1. 将我们写好的scrapy的工程project目录复制到gerapy中的project复制过来就行,然后会在页面中直接显示你的项目目录。
  2. 部署之
    Python信息系统(Scrapy分布式+Django前后端)-4.Gerapy爬虫分布式部署
    Python信息系统(Scrapy分布式+Django前后端)-4.Gerapy爬虫分布式部署

任务管理

Python信息系统(Scrapy分布式+Django前后端)-4.Gerapy爬虫分布式部署
然后就都部署好了,可以自己用爬虫模拟器根据抓取的脚本写一个自动化填写的脚本,基本1个礼拜100个脚本1个一个整太烦,尝试在sqlite里直接添加无法执行,不知道什么原因。

一些需要注意的地方出现同样的问题过来看看解决方案,都是我遇见的坑

### 项目管理
# 直接把写好的scrapy项目仍到gerapy的project文件夹下就自动显示了
# 确保该scrapy项目每个spider文件能单独执行

### 任务管理
# 创建任务 包括名称(自定义)、项目(需要和项目管理一致)、爬虫(单独spider文件)
# 执行任务:主机 + 调度方式 + 运行时间 + 时区,大陆选择Asia/Hong_Kong

### 云服务器部署(此处有些坑)
# 需要安装和初始化同单机
# 需要启动服务两项gerapy和scrapyd 
# 错误 -bash: scrapyd: 未找到命令 需要创建软连接或直接找到文件启动
ln -s /usr/local/python3/bin/gerapy  /usr/bin/gerapy
# 错误 bash: scrapyd: command not found 需要创建软连接或直接找到文件启动
/usr/local/python3/bin/scrapyd
# 错误 bash: scrapy: command not found 需要创建软连接 
ln -s /usr/local/python3/bin/scrapy /usr/bin/scrapy
# 找不到软连接的目录使用查找
find / -name scrapy