Scrapyd使用教程
先上github地址:Scrapyd
- Scrapyd是一个服务,用来运行scrapy爬虫的
- 它允许你部署你的scrapy项目以及通过HTTP JSON的方式控制你的爬虫
- 官方文档:http://scrapyd.readthedocs.org/
安装
pip install scrapyd
安装完成后,在你当前的python环境根目录C:\Program Files\Python35\Scripts
下,有一个scrapyd.exe,
打开命令行,输入scrapyd,如下图:
这样scrapyd就运行起来了,访问127.0.0.1:6800即可看到可视化界面。
注:如果在命令行运行scrapyd报错如下图:
先pip list 查看你的attrs这个包的版本 然后降到16.3 再试试,如果还不行,请评论区提问。
理解scrapyd
scrapyd其实就是一个服务器端,真正在部署爬虫的时候,我们需要两个东西:
- scrapyd (安装在服务器端)
- scrapy-client (客户端)
scrapy-client,它允许我们将本地的scrapy项目打包发送到scrapyd 这个服务端
安装 scrapy-client:pip install scrapy-client
部署scrapy项目
在scrapy项目目录下,有一个scrapy.cfg的配置文件:
# Automatically created by: scrapy startproject # # For more information about the [deploy] section see: # https://scrapyd.readthedocs.org/en/latest/deploy.html [settings] default = china.settings [deploy:demo] url = http://localhost:6800/ project = china
把原先注释掉的url那一行取消注释,这个就是我们要部署到目标服务器的地址,
然后,把[deploy]这里改为[deploy:demo],这里是命名为demo,命名可以任意怎么都可以,只要能标识出来项目就可以。
下边的project 就是我们的工程名,到此配置文件更改完成。
接着,执行scrapyd-deploy,这个命令在windows下是运行不了的,(在mac和linux下都是可以的)因为在我们安装的根目录C:\Program Files\Python35\Scripts
中可以查看这个文件是没有后缀名的:
解决方法:在同目录下,新建文件scrapyd-deploy.bat
@echo off "C:\Program Files\Python35\python.exe" "C:\Program Files\Python35\Scripts\scrapyd-deploy" %1 %2 %3 %4 %5 %6 %7 %8 %9
上边代码是调用的我的环境中的python.exe路径,大家可以根据自己环境来改变路径做配置。
这样就可以执行scrapyd-deploy这个命令了。
然后,进入到我们爬虫的根目录,运行scrapyd-deploy:
显示这个就证明我们成功执行了scrapyd-deploy,注意:一定要进入爬虫根目录,就是带有scrapy.cfg的那一层及目录。
接着:
运行:scrapyd-deploy demo -p china
因为上边我们已经配置过scrapy.cfg文件了,这里直接使用配置完的参数即可:
这里显示我们部署成功,可以查看执行启动scrapyd服务端的当先目录下有两个文件夹:
到这一步,只是把爬虫项目上传到服务端,并没有启动,
接下来看看如何启动:
先运行命令查看服务端状态:
curl http://localhost:6800/daemonstatus.json
返回的信息告诉我们:都为0
再执行启动命令:
curl http://localhost:6800/schedule.json -d project=china -d spider=china
然后查看网页127.0.0.1:6800
再点jobs,
这边就是我们爬虫运行的状态以及日志。
后续补充:
我们在生产环境中,一般scrapyd是部署在服务器,而我们一般会从本地直接发送到服务器端,这时需要调整vim /usr/lib/python3/site-packages/scrapyd/default_scrapyd.conf
scrapyd的默认配置文件:
默认scrapyd启动bind绑定的ip地址是127.0.0.1端口是:6800,
将ip地址设置为0.0.0.0
打开配置文件不需要翻页就能够找到bind_address
还有更多更好用的命令,请查阅官方文档,这里只介绍基本用法。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
aop 框架底层的 Javassist API
javassist 可以实现 java 的动态性 比如在 java 程序运行时, 动态的添加新方法修改类结构 该类 API 与 java.lang.Class API 相似 动态的创建一个 class 对象 ClassPool pool = ClassPool.getDefault(); /** 声明类名及包名 */ CtClass ctClass = pool.makeClass("com.znsd.javassist.Emp"); /** 创建属性 */ CtField ctField = CtField.make("private Integer id;", ctClass); ctClass.addField(ctField); /** 创建方法 */ CtMethod ctMethod = CtMethod.make("public Integer getId(){return id;}", ctClass); ctClass.addMethod(ctMethod); // 将生成好的类输出在本地磁盘上 ctClass.writeFile("F:/"); System.out...
- 下一篇
Java面试题整理《上》
要找工作啦,在这里记录下整理的面试题。Java体系还是很庞大的,我将其分为Java语言部分(JavaSE、JavaEE等官方方面),非Java语言部分(数据库,WEB前端,redis,框架等技术方面)和项目部分。 一、Java基础部分 简单介绍下Java的跨平台原理不同的操作系统的操作指令集不同,所以做程序开发的时候需要根据不同的操作系统开发程序。比如想要程序支持MacOS、Windows和Linux就要开发三套不同的程序代码。这会导致开发成本成倍提升,所以很多程序都只开发了windows版本。这是相对于桌面程序来说的,如果是WEB应用程序就没有这个烦恼,这也是WEB开发这么流行的原因。Sun公司开发了适用于不同操作系统及位数的JVM虚拟机来屏蔽系统之间的差异并提供了统一的接口,对于Java程序而言,只需要遵循Java语言规范,就可以在所有的操作系统上运行程序。 Java中int数据占用几个字节?int数据占用4个字节,这在哪个位数操作系统上都是一样的,主要是为了跟CPU的字长一致,目的当然是提高处理速度。 Java面向对象有哪些特征?主要有四个特征:抽象,封装,继承和多态。 抽象的目...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8安装Docker,最新的服务器搭配容器使用
- 设置Eclipse缩进为4个空格,增强代码规范