【Python】Scrapyd的安装和使用
本文最后更新于 228 天前,其中的信息可能已经有所发展或是发生改变。

介绍

scrapyd是一个用来部署和运行Scrapy项目的应用,由Scrapy的开发者开发。其可以通过一个简单的Json API来部署(上传)或者控制你的项目。
scrapyd-client 是用来打包scrapy项目并上传到scrapyd的工具。

安装与使用

本文演示的是在Centos7下安装scrapyd,windows下安装scrapyd-client。

安装Scrapyd

注意python环境需要安装有setuptools。

  1. 执行命令安装
    pip install scrapyd

  2. 配置文件修改
    这个配置文件的路径不是一成不变的,这取决于当前python环境所在的位置。
    相对于python环境的路径如下python3/site-packages/scrapyd/default_scrapyd.conf。

eggs_dir    = eggs      # 上传的egg文件路径
logs_dir    = logs      # 日志文件保存的路径
items_dir   =
jobs_to_keep = 5
dbs_dir     = dbs
max_proc    = 0
max_proc_per_cpu = 4    # scrapy任务运行时运行4倍于CPU数量的并发
finished_to_keep = 100
poll_interval = 5.0
bind_address = 0.0.0.0  # 监听的地址 0.0.0.0代表监听所有ip 即什么ip访问都能接收到
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
  1. 启动scrapyd
    scrapyd

  2. Linux防火墙开启命令-注意不要开放到公网上

# 开放6800端口
firewall-cmd --permanent --add-port=6800/tcp

# 重启防火墙
firewall-cmd --reload
  1. 测试
    访问地址-http://localhost:6800/

安装scrapyd-client

  1. 执行命令安装
    pip install scrapyd-client

  2. 新增scrapyd-deploy.bat文件(winodws才需要配置),解决没有scrapyd-deploy指令的错误。
    打开当前python环境的Scripts目录,比如我的E:\python\Python\Python37\Scripts,新建一个scrapyd-deploy.bat文件添加如下内容,注意路径需要更换:

@echo off
"E:\python\Python\Python37\python.exe" "E:\python\Python\Python37\Scripts\scrapyd-deploy" %*
  1. scrapyd-deploy命令
    列出scrapyd的全部deploy服务器
    scrapyd-deploy -l
    查询某个deploy所部署爬虫
    scrapyd-deploy -L deploy的名字

Scrapy自动打包上传

  1. 进入scrapy项目路径,输入下面命令检测爬虫项目是否存在
    scrapy list

  2. 修改爬虫的scrapy.cfg文件

[deploy:test]     // 给deploy起个名字
url = http://localhost:6800/   //将url注释解开
project = test   //这是你的项目名字,不用修改
  1. 打包并上传Scrapy
    scrapyd-deploy test(你给deploy起的名字) -p test(项目名)

手动打包Scrapy项目

-v命令是指定一个版本号 默认的话是以时间戳作为版本号
scrapyd-deploy -p test(项目名) -v 1.0(版本号) --build-egg=ncov.egg(生成文件名称)

问题

1.scrapyd-deploy命令报如下错误

scrapyd-deploy:23: ScrapyDeprecationWarning: Module scrapy.utils.http is deprecated, Please import from w3lib.http instead.
打开当前python环境的Scripts\scrapyd-deploy文件,比如我的E:\python\Python\Python37\Scripts\scrapyd-deploy。编辑修改如下内容,大概在23行。

#from scrapy.utils.http import basic_auth_header  #注释此行
from w3lib.http import basic_auth_header  #增加此行

关于

  1. scrapyd
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇