美文网首页我爱编程
第十二章 scrapyd 部署爬虫

第十二章 scrapyd 部署爬虫

作者: Xia0JinZi | 来源:发表于2018-01-04 16:45 被阅读0次

    scrapyd 部署项目

    标签(空格分隔): python scrapy scrapyd


    • 介绍:

    Scrapyd用来部署运行爬虫。它提供了HTTPAPI的服务器,还能运行和监控Scrapy的爬虫。要部署爬虫到Scrapyd,需要使用到scrapyd-client部署工具集,下面演示下部署的步骤Scrapyd通常以守护进程daemon形式运行监听spider的请求,然后为每个spider创建一个进程执行scrapy crawl myspider,同时Scrapyd还能以多进程方式启动,通过配置max_proc和max_proc_per_cpu选项。

    • 安装 主机上:
    pip install scrapyd  #在cmd界面下输入
    

    选择盘符建立scrapyd的文件夹为存放打包上来的文件(.egg)

    • 配置

    打开本机装入python的根文件夹,进入:\Lib\site-packages\scrapyd下,找到default_scrapyd.conf文件使用notep++打开更改配置信息:

    [scrapyd]  
    eggs_dir    = eggs  
    logs_dir    = logs  
    items_dir   =  
    jobs_to_keep = 5  
    dbs_dir     = dbs  
    max_proc    = 0  
    max_proc_per_cpu = 4  
    finished_to_keep = 100  
    poll_interval = 5  
    bind_address = 0.0.0.0   #注意默认为127.0.0.1 为保证通过内网访问 改为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  
    

    除bind_address外其他均不变

    • 部署方法

    在发布爬虫的机器上打开cmd输入:

    pip install scrapyd-client #Scrapyd-client是scrapyd的一个客户端
    

    scrapyd提供了

    scrapyd-delpoy
    

    命令上传我们所写的spider需要我们进入我们所建的爬虫文件修改scrapy.cfg文件内容。如:

    [deploy:example]  #example为发布名称 
    url = http://scrapyd.example.com/api/scrapyd #url为服务器上端口如:http://127.0.0.1:6800
    project = yourproject  #为工程名称,发布爬虫时需要使用
    #username = scrapy  
    #password = secret  
    

    更改了scrapy.cfg信息后,发布爬虫时,我们需要在cmd中cd 到我们所建立的爬虫项目下,如:ArticleSpider 。目的是执行scrapyd-deploy命令时,可检测到我们的scrapy.cfg文件

    scrapyd-deploye -l example #可列出可运行的工程
    scrapyd-deploye <example> -p <projectname> #发布爬虫
    
    
    注意:(无法执行scrapyd-deploy时)
    在python36\Scripts下新建文件scrapyd-deploy.bat然后写入以下内容: 
    @echo off 
    "E:\python36\python.exe" "E:\python36\Scripts\scrapyd-deploy" %1 %2 %3 %4 %5 %6 %7 %8 %9
    

    部署成功后我们可以看到提示:

    {"status":"ok"}
    
    • 启动爬虫

    首先我们需要下载Cmder软件用于执行curl命令。

    打开Cmder,输入以下代码启动爬虫

    curl http://localhost:6800/schedule.json -d project=market_spider -d spider=newsspider
    # http://localhost:6800/ 可以改为服务器ip,如:
    192.168.1.154:6800
    

    (因为我们在scrapy.cfg文件中的url输入的为架设scrapyd的ip 所以我们在启动spider的时候应该输入相同的地址)
    启动成功后我们可以得到:
    {"status":"ok"}的提示
    并且我们得到"jobid"我们需要记住后面的编码,用于以后结束爬虫。

    curl http://127.0.0.1:6800/cancel.json -d project=myspider -d job=566dba0ccc0711e6b95c000c294834b5 
    

    输入上方代码结束正在工作的爬虫,job后的码即为启动爬虫时产生的jobid

    • 查看爬虫的日志

    在浏览器中输入Scrapyd的地址,即为部署Scrapyd的主机的ip加上端口。如:http://192.168.1.152:6800/ 然后点击job我们可以看见现在正在运行的爬虫以及完成后的爬虫。
    点击log我们可以观看日志每一次运行爬虫都会产生,并且在本地创建的Scrapyd文件夹下logs文件夹中也会存储。观看日志信息我们可以看到如果爬虫运行错误的信息。

    • 注意:

    1.将爬虫打包传递到服务器后,运行时,我们需要保证服务器的环境足够运行此项目的代码;
    2.对于本机上的爬虫代码,我们可以使用本地的插件例如:chrome.exe 用于selenium进行爬取但代码打包上传时,代码没有改变,所以会有找不chrome的错误,我们需要对其做出一定的更改,上传新的代码版本;
    3.更多scrapyd相关命令可访问下面网址:

    http://scrapyd.readthedocs.io/en/latest/api.html
    

    • 原视频UP主慕课网(聚焦Python分布式爬虫必学框架Scrapy 打造搜索引擎)
    • 本篇博客撰写人: Python组学弟撰写 XiaoJinZi 上传 个人主页 转载请注明出处
    • 学生能力有限 附上邮箱: 986209501@qq.com 不足以及误处请大佬指责

    相关文章

      网友评论

        本文标题:第十二章 scrapyd 部署爬虫

        本文链接:https://www.haomeiwen.com/subject/slxrnxtx.html