美文网首页
【小白学爬虫连载(14)】--scrapy分布式部署

【小白学爬虫连载(14)】--scrapy分布式部署

作者: 哈希大数据 | 来源:发表于2018-05-31 11:16 被阅读12次

    欢迎关注哈希大数据微信公众号【哈希大数据】

    scrapy分布式部署
    之前我们启动scrapy爬虫的时候都是用命令行,这个不是很方便,如果有多个爬虫时不便于管理。本次给大家分享很好用的管理scrapy的第三方库scrapyd,Scrapyd是scrapinghub官方提供的爬虫管理、部署、监控的方案。接下来我们将从安装、配置、使用这三方面介绍如何使用scrapyd。
    安装
    安装scrapyd
    pip install scrapyd
    安装scrapyd-client
    pip install scrapyd-client
    这里之所以安装scrapyd-client,是因为直接利用scrapyd部署项目是需要自己手动把项目打包成egging文件,过程比较繁琐,利用scrapyd-client可以很简单的完成部署。

    注意:安装完scrapyd-client可能出现不能使用的情况,此时在
    你的python\Script下创建一个scrapyd-deploy.bat文件,填写内容为:
    @echo off
    "F:\project\simulate_browser\venv\Scripts\python.exe" "F:\project\simulate_browser\venv\Scripts\scrapyd-deploy" %1 %2 %3 %4 %5 %6 %7 %8 %9
    将上面路径替换为你的python.exe文件和scrapyd-deploy所在路径。
    然后就OK了。
    项目部署
    (1)运行scrapyd
    首先切换命令行路径到Scrapy项目的根目录下,在命令行里执行scrapyd,将scrapyd运行起来。就会如下图所示:

    image
    此时打开url = http://localhost:6800/网址将看到如下网页:
    image
    (2)发布项目到scrapyd

    首先配置scrapy.cfg

    在scrapy.cfg中,取消#url = http://localhost:6800/前面的“#”
    然后在项目根目录下新开命令窗口输入:
    scrapyd-deploy -p <scrapy项目名称>
    如下图:

    image
    启动、停止、查看爬虫
    此时如果你未关闭第2步运行scrapyd的命令窗口,直接利用如下命令行启动爬虫:
    curl http://localhost:6800/schedule.json -d project=myproject -d spider=spider2
    如果关闭了第2步运行scrapyd的命令窗口,此时同步骤1再次启动scrapyd,然后利用上面的命令启动爬虫。
    此时我们打开http://localhost:6800/,点击jobs,可以看到如下网页: image
    如上图所示我们一次可以启动多个爬虫。经过一段时间的运行所有爬虫运行完毕如下图所示:
    image
    我们还可以中途停止正在运行的爬虫,命令如下:
    curl http://localhost:6800/cancel.json -d project=PROJECT_NAME -d job=JOB_ID
    

    其中JOB_ID可以通过上图中的job列获得,非常的方便。
    更多的API大家可参考:http://scrapyd.readthedocs.io/en/latest/api.html
    小结
    此前我们介绍了几个利用scrapy爬取各类信息的实例,随着爬虫数量的增加,爬虫任务量的增加。我们需要采用分布式的结构来运行我们的爬虫,此时如何统一管理、部署、监控就是一个比较难办的问题,这里我们介绍了一个scrapyd库,来解决以上问题。本文主要从安装、项目部署、具体如何使用三方面介绍了该库。

    相关文章

      网友评论

          本文标题:【小白学爬虫连载(14)】--scrapy分布式部署

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