# scrapyd本地部署,远端部署,利用gerapy部署
# scrapyd 本地部署
**scrapyd**
是运行scrapy爬虫的服务程序,它支持以http命令方式发布、删除、启动、停止爬虫程序。而且scrapyd可以同时管理多个爬虫,每个爬虫还可以有多个版本
* pip3 install scrapyd
scrapyd-client发布爬虫需要使用另一个专用工具,就是将代码打包为EGG文件,其次需要将EGG文件上传到远程主机上这些操作需要scrapyd-client来帮助我们完成
* pip3 install scrapyd-client
安装完成后可以使用如下命令来检查是否安装成功
* scrapyd-deploy -h
**启动scrapyd**
* scrapyd
**修改scrapy项目目录下的scrapy.cfg配置文件**
~~~python
[deploy]
url=http://localhost:6800
project=项目名称
~~~
**本地部署**
本地部署
项目部署相关命令: 注意这里是项目的名称而不是工程的名称
* scrapyd-deploy -p
也可以指定版本号
* scrapyd-deploy -p --version
**爬虫运行相关命令**
详情参考:[https://scrapyd.readthedocs.io/en/latest/api.html](https://scrapyd.readthedocs.io/en/latest/api.html)
### 远端部署
#### 配置服务器
**1.购买Linux系统服务器**
**2.在终端上登录系统服务器**
**3.配置项目运行环境**
~~~
配置python环境(ubuntu自带python3环境))
安装pip3:sudo apt install python3-pip
安装scrapy:pip3 install scrapy -i https://pypi.douban.com/simple/
如果安装失败添加如下依赖:
~~~
sudo apt-get install python-dev python-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev
* 安装scrapyd: pip3 install scrapyd
* 安装scrapyd-client: pip3 install scrapyd-client
* 添加爬虫运行的三方库:
~~~
pip3 install requests
pip3 install pymysql
pip3 install pymongodb
..........
~~~
### 修改scrapyd的配置文件,允许外网访问
* 查找配置文件的路径:find -name default\_scrapyd.conf
* 修改配置文件: sudo vim 路径
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190922153958557.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzcwNjQ3Mw==,size_16,color_FFFFFF,t_70)
\*\*要去服务器安全组配置 \*\*
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190922154236228.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzcwNjQ3Mw==,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190922154326767.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzcwNjQ3Mw==,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190922154347385.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzcwNjQ3Mw==,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190922154400694.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzcwNjQ3Mw==,size_16,color_FFFFFF,t_70)
**最后将爬虫项目在服务器上部署**
首先修改scrapyd.egg(项目上的配置文件)
~~~python
[deploy]
url = http://118.24.255.219:6800
project=项目名称
~~~
**项目部署**
* scrapyd-deploy -p
也可以指定版本号
* scrapyd-deploy -p --version
**分布式爬虫项目的部署与上面部署的流程一致**
### 在Windows上scrapyd 可能不好用需要先在当前环境下的Scripts文件加下创建两个文件scrapyd.bat 和scrapyd-depoly.bat文件
* 在scrapyd.bat下
> @echo off
> “C:\\Users\\meuto\\Envs\\spider-man\\Scripts\\python.exe” “C:\\Users\\meuto\\Envs\\spiderman\\Scripts\\scrapyd”%\*
* 在scrapyd-depoly.bat文件下
> @echo off
> “C:\\Users\\meuto\\Envs\\spider-man\\Scripts\\python.exe” “C:\\Users\\meuto\\Envs\\spiderman\\Scripts\\scrapyd-deploy”%\*
> **第一个路径是当前环境下的python解释器,另一个是当前环境下的crapyd-deploy**
## gerapy 详解
介绍:
Gerapy 是一款分布式爬虫管理框架,支持 Python 3,基于 Scrapy、Scrapyd、Scrapyd-Client、Scrapy-Redis、Scrapyd-API、Scrapy-Splash、Jinjia2、Django、Vue.js 开发,Gerapy 可以帮助我们:
* 更方便地控制爬虫运行
* 更直观地查看爬虫状态
* 更实时地查看爬取结果
* 更简单地实现项目部署
* 更统一地实现主机管理
* 提供在线编辑代码功能
**Greapy 安装和使用**
> pip3 install gerapy
查看是否安装成功
> gerapy
> 出现如下结果图说明安装成功
> ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190922160802681.png)
**初始化gerapy**
> gerapy init
> 执行完毕之后,便会在桌面下生成一个名字为 gerapy 的文件夹,接着进入该文件夹,可以看到有一个 projects 文件夹
**进入到gerapy文件夹下**
> cd gerapy
\*\*执行(会在gerapy目录下生产一个sqlite数据库,同时创建数据表,数据库中会保存各个主机配置信息、部署版本等)
\*\*
> gerapy migrate
**运行gerapy服务**
> gerapy runserver
**访问gerapy管理界面在浏览器中输入如下网址**
> http://127.0.0.1:8000
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190922161022657.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzcwNjQ3Mw==,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190922161038571.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzcwNjQ3Mw==,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190922161059751.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzcwNjQ3Mw==,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190922161113961.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzcwNjQ3Mw==,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190922161132860.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzcwNjQ3Mw==,size_16,color_FFFFFF,t_70)
- thinkphp
- thinkphp笔记
- 后台登陆退出
- config配置
- 隐藏后台模块
- 单独调用腾讯云行为验证码
- api接口跨域问题
- api接口创建案例代码
- 使用gateway worker
- 使用swoole代码笔记
- 使用队列 think-queue笔记
- 后台布局
- MySQL
- 1、关于lnmp mysql的一个坑
- 2、mysql实现group by后取各分组的最新一条
- 其他
- 搞笑的注释代码
- 分页类
- nodejs 打包网址为exe
- 免费天气预报API接口
- Ajax
- 简单的ajax分页1
- 通用ajax-post提交
- 引用的类库文件
- Auth.php
- Auth.php权限控制对应的数据库表结构
- Layui.php
- Pinyin.php
- Random.php
- Tree.php
- Tree2.php
- Js-Jq
- Git的使用
- 3、bootstrap-datetimepicker实现两个时间范围输入
- CentOS安装SSR做梯子
- Python爬虫
- 1、安装Gerapy
- 2、安装Scrapy
- 3、Scrapy使用
- 4、Scrapy框架,爬取网站返回json数据(spider源码)
- 0、Python pip更换国内源(一句命令换源)
- 服务器运维
- 1、宝塔使用webhook更新服务器代码
- 2、搭建内网穿透
- 3、数据库主从同步
- 4、数据库复制
- hui-Shop问题
- 1、前端模板的注意事项
- 2、模板标签