Python信息系统(Scrapy分布式+Django前后端)-4.Gerapy爬虫分布式部署
原创不易,转载请标明出处,谢谢。
该项目全部内容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文件可以执行就可以了。接下来我们部署到远程的服务器上然后进行定时执行。
接下来的部分有点坑要注意:
- Gerapy的django版本是1.x,后面前后端分离的系统是3.x所以不兼容,有能力的童鞋自行修改对应源码即可,如果懒得修改的话直接弄2台机器吧。
- 部署服务器的话需要开一个端口进行远程访问,切记不要开6800裸奔。
- 远程服务器配置和scrapy配置版本要相同。
部署效果
部署流程
必备库安装
gerapy 安装
pip install gerapy
scrapyd 安装
pip install scrapyd
创建工作的文件目录,该目录下初始化项目(文件名随意)用命令行执行
gerapy init
初始化数据库
cd gerapy
gerapy migrate
创建超级用户(记住用户名和密码)
gerapy initadmin
然后就可以启动服务了,启动服务(可指定url和port)
gerapy runserver 你的ip+端口(0.0.0.0:8000)
scrapyd 或者 /usr/local/python3/bin/scrapyd
进入管理平台(浏览器输入) 举例这样在本地打开
http://127.0.0.1:8000
这个地方有点坑,网上很多教程没有用户名密码创建登陆过程,不创建用户无法使用。
主机管理
- 创建主机名称(机器名称:能区分出来就行)
- 创建主机IP(IP网段:略)
- 创建主机端口(端口号:一般默认6800)
- 认证:目前这个用户名对和错都能正常运行
项目管理
- 将我们写好的scrapy的工程project目录复制到gerapy中的project复制过来就行,然后会在页面中直接显示你的项目目录。
- 部署之
任务管理
然后就都部署好了,可以自己用爬虫模拟器根据抓取的脚本写一个自动化填写的脚本,基本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
上一篇: centos7安装docker
下一篇: FFT快速傅立叶变换