美文网首页
scrapyd部署爬虫

scrapyd部署爬虫

作者: meetliuxin | 来源:发表于2018-06-19 15:36 被阅读0次

    官方文档:http://scrapyd.readthedocs.io/en/stable/

    scrapy爬虫写好后,一般需要用命令行运行。scrapyd部署能够在网页端查看正在执行的任务,也能新建爬虫任务,和终止爬虫任务。优点:在网页端管理爬虫,可以控制多个爬虫任务。

    1.安装

    pip install scrapyd
    pip install scrapyd-client

    2.基本使用

    2.1 运行scrapyd

    在scrapy.cfg中,取消#url = http://localhost:6800/前面的“#” 。

    首先切换命令行路径到Scrapy项目的根目录下,
    开启scrapyd服务,输入scrapyd,将scrapyd运行起来

    然后新开一个终端切换路径至scrapy工程根目录,发布scrapyd项目,运行命令:
    scrapd-deploy -p projectName
    验证是否发布成功:
    scrapyd-deploy -l

    2.2 发布工程到scrapyd

    上述命令已经开启服务,并创建了爬虫项目

    2.3 创建爬虫任务

    命令行输入

    curl http://localhost:6800/schedule.json -d project=projectName -d spider=spiderName
    

    3. 查看爬虫任务

    在网页中输入:http://localhost:6800/

    4.修改scrapyd的配置

    scrapyd默认保留5条日志。
    默认绑定地址为127.0.0.1。如果是在服务器部署爬虫需要在其他主机访问则修改地址为0.0.0.0
    pip show scrapyd找到scrapyd的位置

    一些常用命令:

    1、获取状态
    http://127.0.0.1:6800/daemonstatus.json
    2、获取项目列表
    http://127.0.0.1:6800/listprojects.json
    3、获取项目下已发布的爬虫列表
    http://127.0.0.1:6800/listspiders.json?project=myproject
    4、获取项目下已发布的爬虫版本列表

    http://127.0.0.1:6800/listversions.json?project=myproject
    5、获取爬虫运行状态
    http://127.0.0.1:6800/listjobs.json?project=myproject
    6、启动服务器上某一爬虫(必须是已发布到服务器的爬虫)
    http://localhost:6800/schedule.json (post方式,data={"project":myproject,"spider":myspider})
    7、删除某一版本爬虫
    http://127.0.0.1:6800/delversion.json (post方式,data={"project":myproject,"version":myversion})
    8、删除某一工程,包括该工程下的各版本爬虫
    http://127.0.0.1:6800/delproject.json(post方式,data={"project":myproject})

    参考文章:https://www.cnblogs.com/zhongtang/p/5634545.html

    重启scrapyd的方法

    (1)ps aux|grep scrapyd:找到scrapyd的pid

    (2) kill -9 pid 或者kill pid

    (3)screen -S scrapyd 新建一个进程

    (4) 在进程里启动scrapyd

    /usr/bin/python /usr/local/bin/scrapyd

    (5)ctrl+A+D退出进程

    (6)改工程的scrapy.cfg文件,如果url有#号,把url前的#去掉

    (7)可以scrapyd-deploy工程了

    screen参考:
    https://www.ibm.com/developerworks/cn/linux/l-cn-screen/
    http://man.linuxde.net/screen

    杀死screen会话 screen -X -S pid quit 其中pid为screen进程号
    screen -ls 列出现有screen会话列表
    screen -r pid 恢复到某个screen会话
    Ctrl+a +d 保留会话离开当前窗口

    相关文章

      网友评论

          本文标题:scrapyd部署爬虫

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