芝麻HTTP:Scrapyd的安装
Scrapyd是一个用于部署和运行Scrapy项目的工具,有了它,你可以将写好的Scrapy项目上传到云主机并通过API来控制它的运行。
既然是Scrapy项目部署,基本上都使用Linux主机,所以本节的安装是针对于Linux主机的。
1. 相关链接
- GitHub:https://github.com/scrapy/scrapyd
- PyPI:https://pypi.python.org/pypi/scrapyd
- 官方文档:https://scrapyd.readthedocs.io
2. pip安装
这里推荐使用pip安装,命令如下:
- pip3 install scrapyd
3. 配置
安装完毕之后,需要新建一个配置文件/etc/scrapyd/scrapyd.conf,Scrapyd在运行的时候会读取此配置文件。
在Scrapyd 1.2版本之后,不会自动创建该文件,需要我们自行添加。
首先,执行如下命令新建文件:
- sudo mkdir /etc/scrapyd
- sudo vi /etc/scrapyd/scrapyd.conf
接着写入如下内容:
- [scrapyd]
- eggs_dir = eggs
- logs_dir = logs
- items_dir =
- jobs_to_keep =
- dbs_dir = dbs
- max_proc =
- max_proc_per_cpu =
- finished_to_keep =
- poll_interval = 5.0
- bind_address = 0.0.0.0
- http_port =
- debug = off
- runner = scrapyd.runner
- application = scrapyd.app.application
- launcher = scrapyd.launcher.Launcher
- webroot = scrapyd.website.Root
- [services]
- schedule.json = scrapyd.webservice.Schedule
- cancel.json = scrapyd.webservice.Cancel
- addversion.json = scrapyd.webservice.AddVersion
- listprojects.json = scrapyd.webservice.ListProjects
- listversions.json = scrapyd.webservice.ListVersions
- listspiders.json = scrapyd.webservice.ListSpiders
- delproject.json = scrapyd.webservice.DeleteProject
- delversion.json = scrapyd.webservice.DeleteVersion
- listjobs.json = scrapyd.webservice.ListJobs
- daemonstatus.json = scrapyd.webservice.DaemonStatus
配置文件的内容可以参见官方文档https://scrapyd.readthedocs.io/en/stable/config.html#example-configuration-file。这里的配置文件有所修改,其中之一是max_proc_per_cpu
官方默认为4,即一台主机每个CPU最多运行4个Scrapy任务,在此提高为10。另外一个是bind_address
,默认为本地127.0.0.1,在此修改为0.0.0.0,以使外网可以访问。
4. 后台运行
Scrapyd是一个纯Python项目,这里可以直接调用它来运行。为了使程序一直在后台运行,Linux和Mac可以使用如下命令:
- (scrapyd > /dev/null &)
这样Scrapyd就会在后台持续运行了,控制台输出直接忽略。当然,如果想记录输出日志,可以修改输出目标,如:
- (scrapyd > ~/scrapyd.log &)
当然也可以使用screen、tmux、supervisor等工具来实现进程守护。
运行之后,便可以在浏览器的6800端口访问Web UI了,从中可以看到当前Scrapyd的运行任务、日志等内容,如图所示。
当然,运行Scrapyd更佳的方式是使用Supervisor守护进程,如果感兴趣,可以参考:http://supervisord.org/。
另外,Scrapyd也支持Docker,后面我们会介绍Scrapyd Docker镜像的制作和运行方法。
5. 访问认证
配置完成后,Scrapyd和它的接口都是可以公开访问的。如果想配置访问认证的话,可以借助于Nginx做反向代理,这里需要先安装Nginx服务器。
在此以Ubuntu为例进行说明,安装命令如下:
- sudo apt-get install nginx
然后修改Nginx的配置文件nginx.conf,增加如下配置:
- http {
- server {
- listen ;
- location / {
- proxy_pass http://127.0.0.1:6800/;
- auth_basic "Restricted";
- auth_basic_user_file /etc/nginx/conf.d/.htpasswd;
- }
- }
- }
这里使用的用户名和密码配置放置在/etc/nginx/conf.d目录下,我们需要使用htpasswd
命令创建。例如,创建一个用户名为admin的文件,命令如下:
- htpasswd -c .htpasswd admin
接着就会提示我们输入密码,输入两次之后,就会生成密码文件。此时查看这个文件的内容:
- cat .htpasswd
- admin:5ZBxQr0rCqwbc
配置完成后,重启一下Nginx服务,运行如下命令:
- sudo nginx -s reload
这样就成功配置了Scrapyd的访问认证了。
芝麻HTTP:Scrapyd的安装的更多相关文章
- scrapyd的安装和scrapyd-client
1.创建虚拟环境 ,虚拟环境名为sd mkvirtualenv sd #方便管理 2. 安装 scrapyd pip3 install scrapyd 3. 配置 mkdir /etc/scrapy ...
- scrapyd的安装
.安装 pip3 install scrapyd 二.配置 安装完毕之后,需要新建一个配置文件/etc/scrapyd/scrapyd.conf,Scrapyd在运行的时候会读取此配置文件. 在Scr ...
- Scrapy+Scrapy-redis+Scrapyd+Gerapy 分布式爬虫框架整合
简介:给正在学习的小伙伴们分享一下自己的感悟,如有理解不正确的地方,望指出,感谢~ 首先介绍一下这个标题吧~ 1. Scrapy:是一个基于Twisted的异步IO框架,有了这个框架,我们就不需要等待 ...
- Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理
Scrapy是一个流行的爬虫框架,利用Scrapyd,可以将其部署在远程服务端运行,并通过命令对爬虫进行管理,而Gerapy为我们提供了精美的UI,可以在web页面上直接点击操作,管理部署在scrap ...
- 第三百七十二节,Python分布式爬虫打造搜索引擎Scrapy精讲—scrapyd部署scrapy项目
第三百七十二节,Python分布式爬虫打造搜索引擎Scrapy精讲—scrapyd部署scrapy项目 scrapyd模块是专门用于部署scrapy项目的,可以部署和管理scrapy项目 下载地址:h ...
- 五十一 Python分布式爬虫打造搜索引擎Scrapy精讲—scrapyd部署scrapy项目
scrapyd模块是专门用于部署scrapy项目的,可以部署和管理scrapy项目 下载地址:https://github.com/scrapy/scrapyd 建议安装 pip3 install s ...
- scrapy——8 scrapyd使用
scrapy——8 scrapyd使用 什么是scrapyd 怎么安装scrapyd 如何使用scrapyd--运行scrapyd 如何使用scrapyd--配置scrapy.cfg 如何使用s ...
- scrapy-redis(七):部署scrapy
一般我们写好scrapy爬虫,如果需要启动的话,需要进入scrapy项目的根目录,然后运行以下命令: scrapy crawl {spidername} 这样我们就可以在终端查看到爬虫信息了.但爬虫运 ...
- scrapy项目部署
什么是scrapyd Scrapyd是部署和运行Scrapy.spider的应用程序.它使您能够使用JSON API部署(上传)您的项目并控制其spider. 特点: 可以避免爬虫源码被看到. 有版本 ...
随机推荐
- Struts2的配置和一个简单的例子
Struts2的配置和一个简单的例子 笔记仓库:https://github.com/nnngu/LearningNotes 简介 这篇文章主要讲如何在 IntelliJ IDEA 中使用 Strut ...
- IIS 加载 JSON 错误 404 解决办法
MIME设置:在IIS的站点属性的HTTP头设置里,选MIME 映射中点击”文件类型”-”新类型”,添加一个文件类型:关联扩展名:*.json内容类型(MIME):application/x-java ...
- LANMP系列教程之Apache编译安装CentOS7环境
1.准备好源码包并配置好yum源,需要的源码包包括:httpd-2.4.18.apr-1.5.2.tar.gz.apr-util-1.5.4.tar.gz 2.准备用户 groupadd -r a ...
- MOBA 游戏技能系统设计 2.0
随着游戏开发的完整度提升,技能系统的设计复杂性也越来越高,导致了用模板方式的配置方法和处理方法会导致以下几个问题: 代码冗余 排错困难 配置项冗余 熟悉业务流程时间长 扩展性低 经过我思考决定重写之. ...
- BZOJ 1969: [Ahoi2005]LANE 航线规划 [树链剖分 时间倒流]
题意: 一张图,删除边,求两点之间的割边数量.保证任意时刻图连通 任求一棵生成树,只有树边可能是割边 时间倒流,加入一条边,就是两点路径上的边都不可能是割边,区间覆盖... 然后本题需要把边哈希一下, ...
- 夏令营提高班上午上机测试 Day 4 解题报告
我要是没记错的话,今天的题难度算挺适中的. *标程来自高天宇哥哥 T1:小G的字符串 题目描述 有一天,小 L 给小 G 出了这样一道题:生成一个长度为 n 的.全由小写英文字母构成的字符串,只能使用 ...
- 剑指offer试题(PHP篇二)
6.旋转数组的最小数字 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1 ...
- Windows Server 2016-Active Directory域服务概述
活动目录(AD)是一种目录服务是微软用于开发Windows域网络.它被包含在大多数Windows Server 操作系统中作为一组进程和服务.最初,Active Directory只负责集中式域管理. ...
- qt实现一个简单的计算器
1.计算器的界面如下图所示 dalog.cpp #include "dialog.h" #include "ui_dialog.h" #include<Q ...
- iterm2 快捷键大全
Mac 原来自带的终端工具 Terminal 不好用是出了名的,虽然最近几个版本苹果稍微做了些优化,功能上,可用性方面增强不少,无奈有个更好用的 Iterm2 摆在那,基本上也就没有多少出场机会了 I ...