scrapy+scrapyd+scrapydweb(centos7)部署爬虫(绝世好文)

绝世好文章,值得阅读!!!!

1.目前得情况我们得先写好一个爬虫啊!!!
2.要求我们得把爬虫部署到服务器上面!!!
  1. 首先我们得先下载好我们需要的包,服务器需要scrapyd、scrapydweb这两个包。这两个包下载的位置应该是在python3下的bin目录的下面。
    在这里插入图片描述
    我的是在python的安装目录下面的bin目录
/usr/local/python3/bin

2.创建两个日志文件,一个scrapyd-run.log和一个scrapydweb-run.log日志。我提前创建好了啊。

touch scrapyd-run.log
touch scrapydweb-run.log

3.创建我们的scrapyd服务啊!
先说我们scrapyd的服务。在etc/scrapyd下有我们的配置文件,scrapyd.conf里面记得把我们的bind改成那个0.0.0.0,这样就暴露在公网上了。其次,我们的把这个端口在nginx下做一个代理。做一个转向。
3.1nginx上的配置:
nginx 配置用户认证有两种方式: 1.auth_basic 本机认证,由ngx_http_auth_basic_module模块实现。配置段: http, server, location, limit_except 2.auth_request,由ngx_http_auth_request_module模块实现。配置段:http, server, location第一种方式:yum -y install httpd-tools //安装 htpasswd 工具htpasswd -c /etc/nginx/.passwd-www www //生成用户登录的认证文件配置nginx本地认证:
server {
listen 80;
server_name www.imcati.com;

auth_basic "User Authentication";
auth_basic_user_file /etc/nginx/.passwd-www;    
location / {
    root   /usr/share/nginx/html;
    index  index.html;
}

}加载配置: nginx -s reload访问页面验证:

第二种方式:
编译Nginx时需要添加该模块: --with-http_auth_request_module
该模块可以将客户端输入的用户名、密码 username:password 通过 Base64 编码后写入 Request Headers 中,例如:www:wwww -> Authorization:Basic d2FuZzp3YW5n=
然后通过第三方程序解码后跟数据库中用户名、密码进行比较,Nginx服务器通过header的返回状态判断是否认证通过。

nohup scrapyd >./scrapyd-run.log 2>&1 &

4.创建我们的scrapydweb服务,首先啊,肯定是先安装上我们的scrapydweb包啊。配置我们的scrapydweb的配置文件,只要你运行scrapydweb他默认会在我们第一次运行的目录下创建一个文件,当然了,目前是启动不了,因为配置文件没有编辑好呢!!在这里插入图片描述
scrapydweb_settings_v10这个文件就是我们的scrapydweb的配置文件,进去编辑几个地方就好了。如果有其他需要自行研究。
4.1外网就可以访问scrapydweb了。在这里插入图片描述
4.2外网访问scrapydweb就可以加上密码了。在这里插入图片描述
4.3加入你scrapyd的访问路径(经过nginx做过代理的地址,以及端口啊),以及密码,记住记住一定要给我们scrapd弄成本地访问,不要放到公网。用nginx做一个转向,加一个密码,不要容易被攻击。

我的就是。上午突发事情,服务器被注入矿机了,杀了一上午。

警告:一定要记得给scrapyd用nginx做一个代理加密码啊!!!!。把scrapyd的配置文件中的地址改为127.0.0.1

在这里插入图片描述SCRAPYD_SERVERS中填写的地址就是我们经过nginx代理过的地址。
输入格式为

‘用户名:密码@nginx代理的地址:端口#编组’

4.4这个也改正经过nginx做过代理的地址。在这里插入图片描述
4.5在/dev/logs
这个好像是存放scrapyd的日志的目录。也需要你搞一下。
5.继续在当前目录下面输入命令
创建好scrapydweb的nohup日志文件

touch scrapydweb-run.log

执行nohup命令

nohup scrapydweb >./scrapydweb-run.log 2>&1 &

这样我们在外网就输入地址就可以访问我们的scrapyd和scrapydweb的服务了。
继续说一遍啊

警告:千万、千万、千万给scrapyd用nginx做一个代理啊

然后通过打包我们的scrapy项目发送到scrapyd上面
在我们的scrapyd的更目录下执行如下操作
5. 1、进入带有scrapy.cfg文件的目录,

scrapy.cfg文件是给scrapyd-deploy使用的,

将里面url这行代码的注释去掉,并且在【deploy的位置】设置你的部署名称

复制代码
[settings]
default = company_info.settings

[deploy:wj]
url = http://localhost:6800/
project = company_info

  1. 2、执行scrapyd-deploy,测试scrapyd-deploy是否可以运行

scrapyd-deploy -l

如果出现 wj http://localhost:6800/ 说明正常运行

  1. 3、执行scrapy list 查看要可以运行的项目

    1. 4、用这个命令:scrapyd-deploy 部署名称 -p 项目名称

执行 scrapyd-deploy wj -p TotalSpider

该命令( scrapyd-deploy)通过读取scrapy项目目录下的配置文件scrapy.cfg来获取项目信息。
  每一个scrapy.cfg对于scrapyd来说都是一个target。所以我们需要先编辑scrapy.cfg文件
   [deploy:NAME]
  如果你只有一个deploy配置那么可以不写NAME
  但是如果你需要在多个远程服务器或者多个scrapyd进程上部署的话
  应该为不同的deploy命名,方便部署。

  1. 5、
    scrapyd-deploy -p 项目名 -v 版本名 --build-egg=egg包名.egg

输入完之后会生成一个egg文件即可

再记一个东西啊
编写计划任务的

crontab -e  

 `0 6 * * * /usr/local/python3/bin/python3 /home/python/down/downFile.py  >> /root/down.log 2> /root/down_error.log &`
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值