spiderkeeper 部署&操作

前言

最近发现了一个spdierkeeper的库,这个库的主要用途是在于.配合这scrpyd管理你的爬虫,支持一键式部署,定时采集任务,启动,暂停等一系列的操作.
简单来说将scrapyd的api进行封装,最大限度减少你跟命令行交互次数.不得说这个是很棒的事情.

https://github.com/DormyMo/Sp... SpiderKeeper的github连接
环境配置

由于 scrapyd是基于python3+以上的版本兼容性较好,所以我们需要的环境为

  • python3.4+
  • scrapyd
  • scrapy & scrapy相关的库
  • scrapy_reids 如果缺少这个在部署任务会报错 (Reids.KeyErroe:'xxx'), xxx我们部署的任务.
  • SpiderKeeper `pip install spiderkeeper' 就可以安装.
启动&配置

安装完成之后,便可以启动服务器了.博主本人使用的是ubuntu,所以就以ubuntu为例,win&macos进本一样.

单台服务器

sudo spiderkeeper   
# 启动单台服务器,默认启动本地的 http://localhost:6800 scrapyd的服务 | spiderkeeper的默认端口为5000.

连接多台scrapyd服务器.
在分布式中我们的服务器中肯定不止一台,使用spiderkeeper可以很好的解决这个问题

sudo spiderkeeper --server=http://localhost:6800 --server=http://111.111.111.111:6800 
 #启动一个spiderkeeper可以同时部署两台服务器的spider
更改用户名&密码&更改端口号

config.py 更改用户名&密码

# Statement for enabling the development environment
import os

DEBUG = True

# Define the application directory


BASE_DIR = os.path.abspath(os.path.dirname(__file__))

SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(os.path.abspath('.'), 'SpiderKeeper.db')
SQLALCHEMY_TRACK_MODIFICATIONS = False
DATABASE_CONNECT_OPTIONS = {}

# Application threads. A common general assumption is
# using 2 per available processor cores - to handle
# incoming requests using one and performing background
# operations using the other.
THREADS_PER_PAGE = 2

# Enable protection agains *Cross-site Request Forgery (CSRF)*
CSRF_ENABLED = True

# Use a secure, unique and absolutely secret key for
# signing the data.
CSRF_SESSION_KEY = "secret"

# Secret key for signing cookies
SECRET_KEY = "secret"

# log
LOG_LEVEL = 'INFO'

# spider services
SERVER_TYPE = 'scrapyd'
SERVERS = ['http://localhost:6800']

# basic auth 这里更改用户名&密码
NO_AUTH = False
BASIC_AUTH_USERNAME = 'admin'
BASIC_AUTH_PASSWORD = 'admin'
BASIC_AUTH_FORCE = True

run.py更改端口号

def parse_opts(config):
    parser = OptionParser(usage="%prog [options]",
                          description="Admin ui for spider service")
    parser.add_option("--host",
                      help="host, default:0.0.0.0", 
                      dest='host',
                      default='0.0.0.0')#bind ip 绑定ip 默认全部人可以访问
    parser.add_option("--port",
                      help="port, default:5000", 
                      dest='port',
                      type="int",
                      default=5000)#默认端口号5000 可以根据你的需求设计
    parser.add_option("--username",
                      help="basic auth username ,default: %s" % config.get('BASIC_AUTH_USERNAME'),
                      dest='username',
                      default=config.get('BASIC_AUTH_USERNAME'))
    parser.add_option("--password",
                      help="basic auth password ,default: %s" % config.get('BASIC_AUTH_PASSWORD'),
                      dest='password',
                      default=config.get('BASIC_AUTH_PASSWORD'))
    parser.add_option("--type",
                      help="access spider server type, default: %s" % config.get('SERVER_TYPE'),
                      dest='server_type',
                      default=config.get('SERVER_TYPE'))
    parser.add_option("--server",
                      help="servers, default: %s" % config.get('SERVERS'),
                      dest='servers',
                      action='append',
                      default=[])
    parser.add_option("--database-url",
                      help='SpiderKeeper metadata database default: %s' % config.get('SQLALCHEMY_DATABASE_URI'),
                      dest='database_url',
                      default=config.get('SQLALCHEMY_DATABASE_URI'))

    parser.add_option("--no-auth",
                      help="disable basic auth",
                      dest='no_auth',
                      action='store_true')
    parser.add_option("-v", "--verbose",
                      help="log level",
                      dest='verbose',
                      action='store_true')
    return parser.parse_args()
部署&运行

启动scrapyd
使用scrapy-deploy将你的文件部署到你本地的服务器上面,你本地的scrapyd获得相应的 .egg文件.

python C:\Users\dengyi\AppData\Local\Programs\Python\Python36\Scripts\scrapyd-deploy cqvip -p Cqvip

启动 spiderkeeper博主这里是启动了多个,进入界面 http://localhost:5000
SpiderKeeper

  • Deploy 部署,建立任务的第一步计入Deploy创建一个新的工程我们起名为test.

部署截图

所上传的egg

  • 将我们的本地的egg文件上传到到Deploy.
  • 如果你是多台服务器的话那么这一步便将你所有scrpayd上,部署Wangfang文件.
  • Dashboard 是仪表盘在这里你可以启动你的spider跟监控spider的运行状态.

这里运行你的spider

选择你需要的运行的spider跟服务器

到这里一个完美的spiderkeeper就搭建成功啦.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python爬虫管理系统有多种选择,其中一些常见的包括SpiderKeeper、Gerapy、Scrapydweb和Crawlab。SpiderKeeper是最早的爬虫管理平台,功能相对来说比较局限。Gerapy功能齐全,界面精美,但还存在一些bug,建议等待2.0版本发布。Scrapydweb是一个比较完善的爬虫管理平台,但它和前两者一样,都是基于scrapyd运行的,只能运行scrapy爬虫。而Crawlab是一个非常灵活的爬虫管理平台,可以运行Python、Nodejs、Java、PHP、Go编写的爬虫,功能比较齐全。不过,相对于前三者,Crawlab的部署可能稍微麻烦一些,但对于Docker使用者来说,可以实现一键部署。Crawlab主要解决大量爬虫管理困难的问题,可以轻松管理成规模的爬虫项目,并支持任何语言和框架的爬虫123 #### 引用[.reference_title] - *1* [10个Python爬虫框架推荐,你使用的是哪个呢?](https://blog.csdn.net/xiaoxijing/article/details/102685407)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] - *2* *3* [快速搭建python爬虫管理平台](https://blog.csdn.net/D0126_/article/details/129744608)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值