Scrapyd的安装及使用(windows)

Scrapyd的安装及使用(windows)

一、安装scrapyd:

官方地址:https://scrapyd.readthedocs.io/en/latest/install.html

注:首先确保以下的依赖包已经安装完毕(这里不说明下面包如何安装)
Python 2.6 or above
Twisted 8.0 or above
Scrapy 0.17 or above

linux的用apt-get安装,其他用 pip install scrapyd 安装即可。

注:这里补充一点,如果在linux下使用apt-get安装失败,也可以使用pip install安装,同时配合supervisor使用。要注意一点的是在supervisor的配置下运行scrapyd要写指令的绝对路径,比如: /usr/bin/scrapyd。

* 如何测试是否安装成功
1、 在cmd窗口用 pip list 查看是否已经安装了scrapyd
2 、在cmd窗口下运行 scrapyd 指令看到如下图1 所示的提示,然后在浏览器访问 http://localhost:6800/,成功访问即可。

Scrapyd的安装及使用(windows)_第1张图片

                                   图1 scrapyd成功启动的图示

scrapyd的配置

/etc/scrapyd/scrapyd.conf (Unix)
python安装目录下的 Lib\site-packages\scrapyd\default_scrapyd.conf (Windows) 这个并非官方说明的路径。
* 以下是几个比较重要的参数

    http_port      监听端口
    bind_address   监听IP地址
    max_proc       最大进程数(为0指开启等同于cpu的数目的进程)
    max_proc_per_cpu    每个cpu开启的进程数,默认:4
    debug          是否开启调试模式
    eggs_dir       存储工程egg文件的目录
    dbs_dir        存储工程数据库的目录
    logs_dir       存储日志的目录(要关闭日志则让这个配置为空)

没错,安装并运行scrapyd就这么简单。

二、安装setuptools:

 为什么要安装这个工具?
 因为部署的应用需要打包成*.egg才能运行。

首先去官网地址:https://pypi.python.org/pypi/setuptools,下载 ez_setup.py 文件,然后在本地执行它,然后就会自动帮你下载并安装好的了。
提示安装成功之后再用pip list看看是否有setuptools即可。

三、部署工程:

  • 1.创建一个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 = market_spider.settings

[deploy:demo]  # demo是指这个deploy的名称,自己命名,可以多个。(后面有用到) 
url = http://localhost:6800/
username = demo  # 新建的时候没有这个的,自己添加的
password = 123456  # 新建的时候没有这个的,自己添加的
project = market_spider  # 工程的名称
  • 2.启动scrapyd:
    新建一个空的python工程,并在本工程下启动scrapyd。注:如果不先启动scrapyd就会无法部署工程,在执行第3、4步的时候会出现如图2的错误提示:

图2 scrapyd-deploy部署失败图示

                                  图2 scrapyd-deploy部署失败图示

  • 3.部署项目:
    部署项目有两种方法:

    • 第一种:通过addversion.json的请求部署,执行下面的请求指令就可以了,其中的参数根据实际工程修改。
      curl http://localhost:6800/addversion.json -F project=myproject -F version=r23 -F [email protected]

    • 第二种:通过scrapyd-deploy部署,要求装一个scrapyd-client,实际上就是借用工具执行第一种方式而已。


  • 4.安装并使用scrapyd-deploy部署项目:

安装scrapyd-deploy

(1) 下载源码,把源码中的scrapyd-deploy拷贝到D:\python27\Scripts下
(2) 在D:\python27\Scripts下新建文件scrapyd-deploy.bat然后写入以下内容:
@echo off
"D:\python27\python.exe" "D:\python27\Scripts\scrapyd-deploy" %1 %2 %3 %4 %5 %6 %7 %8 %9

使用scrapyd-deploy

在工程目录下执行部署指令,部署的指令格式为:scrapyd-deploy -p
* target就是配置文件的deploy的名称,针对上面的配置就是demo
* project如果不输就是配置文件中的project

本例部署的指令:scrapy-deploy demo 

部署成功后会出现图3中的提示:


图3 部署工程成功

                                         图3 部署工程成功

部署完成之后,在步骤1中所创建的python工程里可以看到多了一个eggs的文件夹,以及里面的一些内容,里面所存放的就是scrapyd-deploy的工程打包成.egg的文件,可以看到version就是文件的名称,每当我们执行一次scrapyd-deploy就会生成一个新的egg,示例如图4所示:


Scrapyd的安装及使用(windows)_第2张图片

                 图4 部署完成后的文件夹

四、运行Spider:

主要参考scrapyd官方文档的API部分,如下图5:


Scrapyd的安装及使用(windows)_第3张图片

      图5 scrapyd官方文档的API

在我的scrapy工程里有一个叫newsspider 的spider,现在就可以用API中的请求去调用或者执行爬虫了,这里以schedule.json为示例:
发送以下请求给scrapyd,让它帮我启动newsspider这个spider,详细的参数意义看文档最清楚,在这里不累赘。

curl http://localhost:6800/schedule.json -d project=market_spider -d spider=newsspider

运行的返回值如下图所示,返回ok表示成功,可以自主验证爬虫是不是运行了。


Scrapyd的安装及使用(windows)_第4张图片

                            图6 运行spder成功

五、备注:

执行scrapyd-deploy和scrapyd都会产生一些文件夹以及相关的文件,包括生成egg的过程文件和日志文件等等。

本人对原理并未了解很透彻,请大神多多指教,另文章如有错漏请不吝告知!多谢!

你可能感兴趣的:(python,scrapy,scrapyd)