最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • Python3爬虫利器:Scrapyd的安装(Scrapy分布式)

    正文概述    2020-10-10   540

    Python3爬虫利器:Scrapyd的安装(Scrapy分布式)

    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 = 5
    dbs_dir     = dbs
    max_proc    = 0
    max_proc_per_cpu = 10
    finished_to_keep = 100
    poll_interval = 5.0
    bind_address = 0.0.0.0
    http_port   = 6800
    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 &)

    此时会将Scrapyd的运行结果输出到~/scrapyd.log文件中。

    当然也可以使用screen、tmux、supervisor等工具来实现进程守护。

    运行之后,便可以在浏览器的6800端口访问Web UI了,从中可以看到当前Scrapyd的运行任务、日志等内容,如图1-85所示。

    Python3爬虫利器:Scrapyd的安装(Scrapy分布式)

                                                                    图1-85 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 6801;
            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的访问认证了。

    众多python培训视频,尽在python学习网,欢迎在线学习!

    本文转自:https://cuiqingcai.com/5445.html


    起源地下载网 » Python3爬虫利器:Scrapyd的安装(Scrapy分布式)

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元