精华内容
下载资源
问答
  • Scrapyd

    2020-11-27 12:45:17
    scrapyd是一个用于部署和运行scrapy爬虫的程序,它允许你通过JSON API来部署爬虫项目和控制爬虫运行,scrapyd是一个守护进程,监听爬虫的运行和请求,然后启动进程来执行它们 所谓json api本质就是post请求的web...

    1. 简介

    1.1 定义

    • scrapyd是一个用于部署和运行scrapy爬虫的程序,它允许你通过JSON API部署爬虫项目和控制爬虫运行,scrapyd是一个守护进程,监听爬虫的运行和请求,然后启动进程来执行它们

    所谓json api本质就是post请求的webapi

    2. 使用

    2.1 安装

    scrapyd服务端:

    pip install scrapyd
    

    scrapyd客户端:

    pip install scrapyd-client
    

    2.2 启动

    • scrapy项目路径下 启动scrapyd的命令:
    sudo scrapyd
    
    • 启动之后就可以打开本地运行的scrapyd,浏览器中访问本地6800端口可以查看scrapyd的监控界面

    Scrapyd

    在这里插入图片描述

    • 点击job可以查看任务监控界面
      在这里插入图片描述

    3. 配置

    1. 配置需要部署的项目
      编辑需要部署的项目的scrapy.cfg文件(需要将哪一个爬虫部署到scrapyd中,就配置该项目的该文件)
     [deploy:部署名(部署名可以自行定义)]
     url = http://localhost:6800/
     project = 项目名(创建爬虫项目时使用的名称)
    

    配置

    1. 部署项目到scrapyd
    • 同样在scrapy项目路径下执行:
    scrapyd-deploy 部署名(配置文件中设置的名称) -p 项目名称
    

    部署

    • 部署成功之后就可以看到部署的项目

    部署成功

    1. 管理scrapy项目
    • 启动项目:
    curl http://localhost:6800/schedule.json -d project=project_name -d spider=spider_name
    

    在这里插入图片描述

    • 关闭爬虫:
    curl http://localhost:6800/cancel.json -d project=project_name -d job=jobid
    

    注意:curl是命令行工具,如果没有则需要额外安装
    4. 使用requests模块控制scrapy项目

    import requests
    
    def start_spider(project_name, spider_name):
    	"""启动scrapyd中的爬虫
    	"""
    	# 1. 构建启动scrapyd的爬虫
    	url = 'http://localhost:6800/schedule.json -d project=project_nae -d job=jobid'
    
    	# 2. 构建请求体字典
    	post_body = {
        	'project': project_name,
        	'spider': spider_name,
    	}
    	# 3. 利用requests模块发送post请求
    	resp = requests.post(url, data=post_body)
    	print(response.content.decode())
    
    
    def close_project(project_name, job_id):
    	""""关闭爬虫"""
    	# 构建停止爬虫url地址
    	url = 'http://localhost:6800/cancel.json'
    	post_body = {
        	'project': 项目名,
        	'job': 启动爬虫时返回的jobid,
    	}
    	resp = requests.post(url, data=post_body)
    	print(resp.content.decode())
    
    if __name__ = "main":
    	start_project("itcast", 
    	
    

    4. 其他webapi

    • curl http://localhost:6800/listprojects.json (列出项目)
    • curl http://localhost:6800/listspiders.json?project=myspider (列出爬虫)
    • curl http://localhost:6800/listjobs.json?project=myspider (列出job)
    • curl http://localhost:6800/cancel.json -d project=myspider -d job=tencent (终止爬虫,该功能会有延时或不能终止爬虫的情况,此时可用kill -9杀进程的方式中止)
    • scrapyd还有其他webapi,百度搜索了解更多
    展开全文
  • scrapyd

    2019-01-17 18:44:30
    1. 安装scrapyd 服务 和 scrapyd 客户端 # 安装服务 sudo pip install scrapyd # 安装客户端 sudo pip install scrapyd-client scrapyd 安装在 /usr/local/lib/python2.7/site-packages/scrapyd 配置文件: ...

    Scrapy爬虫项目的远程部署和监控:

    1. 安装scrapyd 服务 和 scrapyd 客户端

    # 安装服务
    sudo pip install scrapyd

    # 安装客户端
    sudo pip install scrapyd-client
    scrapyd 安装在 /usr/local/lib/python2.7/site-packages/scrapyd
    配置文件: default_scrapyd.conf
    参数 bind_address 默认是 127.0.0.1 表示只允许本机访问
    修改为 0.0.0.0 运行任何ip访问

    2. 运行服务端:
    在需要执行爬虫的服务器上运行服务端:
    ~$ scrapyd
    可以在浏览器访问 scrapyd 界面。 http://192.168.118.82:6800

    3. 部署爬虫:
     在编写爬虫的电脑上运行客户端做部署:

    -1. 打开需要部署的scrapy项目的里 scrapy.cfg 文件

    # 配置scrapyd
    [deploy]
    #url = http://localhost:6800/
    project = Tencent

    修改为:

    # 配置scrapyd的配置名
    [deploy:scrapyd_Tencent]

    # url为开启scrapyd服务的服务器url
    url = http://localhost:6800/
    #url = http://11.232.122.100:6800/

    # 表示执行的Scrapy项目名
    project = Tencent

     
    -2 在服务器端将 将指定项目挂载到 scrapyd 服务上。
    ~$ scrapyd-deploy scrapyd_Tencent -p Tencent

    -3 将爬虫部署到scrapyd服务上,并启动:
    ~$ curl http://192.168.118.82:6800/schedule.json -d project=Tencent -d spider=tencent

      - 每次执行爬虫都会生成一个唯一的 jobid ,表示当前执行的爬虫。
        {"status": "ok", "jobid": "d6423a07c9b211e7a8cca45e60e36247", "node_name": "PowerMac.local"}

    -4 停止指定 jobid 的爬虫:
    ~$ curl http://192.168.118.82:6800/cancel.json -d project=Tencent -d job=d6423a07c9b211e7a8cca45e60e36247
     

    展开全文
  • scrapyd + scrapyd web

    2019-08-01 16:15:57
    1.在linux下安装并运行scrapyd 系统:centos7 安装scrapyd:pip isntall scrapyd 如果服务器上python2与python3并存应执行的命令是:pip3 isntall scrapyd 安装后新建一个配置文件:  sudo mkdir /etc/scrapyd  ...

    一、在linux下安装并运行scrapyd
    系统:centos7

    安装scrapyd:pip isntall scrapyd

    如果服务器上python2与python3并存应执行的命令是:pip3 isntall scrapyd

    安装后新建一个配置文件:

      sudo mkdir /etc/scrapyd
    
      sudo vim /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
    

    主要更改 bind_address=0.0.0.0

    我的python3路径: /usr/bin/python3.6.6 找到安装路径里的bin文件里面的scrapyd

    创建文件后执行命令启动scrapyd: /usr/bin/python3.6.6/bin/scrapyd

    创立软链接

    ln -s /usr/bin/python3.6.6/bin/scrapyd /usr/bin/scrapyd
    

    之后执行命令启动scrapyd:scrapyd
    在这里插入图片描述
    在这里插入图片描述
    二、linux下安装scrapyd web
    1.在一个服务器上 ScrapydWeb:pip3 install scrapydweb
    2.通过运行命令 /usr/bin/python3.6.6/bin/scrapydweb 启动 ScrapydWeb(首次启动将自动在当前工作目录生成配置文件)。
    在这里插入图片描述
    启用 HTTP 基本认证(可选):

    ENABLE_AUTH = True
    USERNAME = 'username'
    PASSWORD = 'password'
    

    添加 Scrapyd server,支持字符串和元组两种配置格式,支持添加认证信息和分组/标签:

    SCRAPYD_SERVERS = [
        '服务器外网ip:端口',
        # 'username:password@localhost:6801#group',
        ('username', 'password', 'localhost', '6801', 'group'),
    ]
    

    在这里插入图片描述
    在这里插入图片描述
    圈中配置文件
    更多配置请看官网
    (1)配置完成之后先启动scrapyd
    (2)然后在运行命令/usr/bin/python3.6.6/bin/logparser
    (3)最后运行命令 /usr/bin/python3.6.6/bin/scrapydweb 重启 ScrapydWeb

    然后访问47.106.113.190:5000输入username和password可以看到scrapydweb的页面
    在这里插入图片描述
    未完待续。。。。

    更多可访问
    https://github.com/my8100/files/blob/master/scrapydweb/README_CN.md

    展开全文
  • ScrapydScrapyd-Client

    2019-04-22 14:50:52
    Scrapyd Scrapyd是一个服务,用来运行scrapy爬虫的 它允许你部署你的scrapy项目以及通过HTTP JSON的方式控制你的爬虫 安装 pip install scrapyd 安装完成后,在你当前的python环境根目录下,有一个scrapyd.exe...

    Scrapyd

    • Scrapyd是一个服务,用来运行scrapy爬虫的
    • 它允许你部署你的scrapy项目以及通过HTTP JSON的方式控制你的爬虫

    安装

    pip install scrapyd

    安装完成后,在你当前的python环境根目录,有一个scrapyd.exe,打开命令行,输入scrapyd,如下图:

    PS C:\Windows\system32> scrapyd
    2019-04-22T12:28:13+0800 [-] Loading d:\programdata\anaconda3\lib\site-packages\scrapyd\txapp.py...
    2019-04-22T12:28:15+0800 [-] Scrapyd web console available at http://127.0.0.1:6800/
    2019-04-22T12:28:15+0800 [-] Loaded.

    scrapyd就运行起来了,访问127.0.0.1:6800即可看到可视化界面。

     安装scrapy-client

    scrapyd其实就是一个服务器端,真正在部署爬虫的时候,我们需要两个东西:

    1. scrapyd (安装在服务器端)
    2. scrapy-client (客户端)

    scrapy-client,它允许我们将本地的scrapy项目打包发送到scrapyd 这个服务端
    安装 scrapy-client:pip install scrapy-client

    问题处理:

    接下来就是让人很头疼的scrapyd-deploy问题了,查看官方文档上说用

    scrapyd-deploy -l

    可以看到当前部署的爬虫项目,但是当我输入这段命令的时候显示这个命令不存在或者有错误、不合法之类的。

    解决方案:

    在你的python目录下的Scripts文件夹中,我的路径是“D:\program files\python2.7.0\Scripts”,增加一个scrapyd-deploy.bat文件。

    内容为:

    @echo off
    D:\ProgramData\Anaconda3\python D:\ProgramData\Anaconda3\Scripts\scrapyd-deploy %*

    然后重新打开命令框,再运行scrapyd-deploy -l 就可以了。

    设置

    在scrapy.cfg中修改配置

    [deploy]
    url = http://127.0.0.1:6800/  #部署到目标服务器的地址
    project = qu   #project 就是工程名

    部署

     

    在scrapy.cfg同级目录下运行

    scrapyd-deploy
    

    运行结果如下:

    Packing version 1555914829
    Deploying to project "qu" in http://127.0.0.1:6800/addversion.json
    Server response (200):
    {"node_name": "DESKTOP-V7P52KL", "status": "ok", "project": "qu", "version": "1555914829", "spiders": 1}
    

    运行

    其中project为项目名称,可以根据实际情况自己指定。

    curl http://localhost:6800/schedule.json -d project=qu -d spider=qutoutiao
    

    运行结果:

    {"node_name": "DESKTOP-V7P52KL", "status": "ok", "jobid": "1d6dd56e64be11e989aeb881980dbd3b"}
    

    停止

    curl http://localhost:6800/cancel.json -d project=quJOB_ID -d job=JOB_ID

    运行结果:

    {"node_name": "DESKTOP-V7P52KL", "status": "ok", "prevstate": "running"}
    

     

    展开全文
  • 我创建这个存储库是为了快速开始使用scrapy 和scrapyd。 我已经包含了一个 Dockerfile 来构建一个容器,其中包含运行 scrapyd 实例所需的一切。 还包括教程蜘蛛作为如何部署蜘蛛的示例,作为额外的奖励,我创建了一...
  • scrapyd部署

    2020-10-21 10:39:08
    安装scrapyd: 直接命令安装: pip install scrapyd 安装完成后修改默认的配置文件default_scrapyd.conf 将default_scrapyd.conf拷贝到/etc/scrapyd/scrapyd.conf 并将默认绑定的127.0.0.1ip修改为服务端ip
  • Scrapyd API

    2019-04-23 10:03:18
    Scrapyd官方文档: https://scrapyd.readthedocs.io/en/latest/api.html
  • docker-scrapyd 用于构建运行的镜像的 。 建造 $ docker build -t scrapyd . 跑步 $ docker run -p 6800 scrapyd 如果要保留日志或抓取的项目导出文件,请在运行 scrapyd 时创建一个仅数据容器并链接到它: $ ...
  • scrapyd 启动

    2019-11-15 19:14:35
    在centos 上安装 scrapyd 1. pip3 install scrapyd 2. 后台启动 vi /etc/init.d/scrapyd ``` #!/bin/bash PORT=6800 # 这一项可修改为项目地址 HOME="/var/scrapyd" BIN="/usr/local/bin/scrapyd" ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,718
精华内容 1,087
关键字:

scrapyd