资讯专栏INFORMATION COLUMN

spiderkeeper 部署&操作

Neilyo / 989人阅读

摘要:前言最近发现了一个的库这个库的主要用途是在于配合这管理你的爬虫支持一键式部署定时采集任务启动暂停等一系列的操作简单来说将的进行封装最大限度减少你跟命令行交互次数不得说这个是很棒的事情的连接环境配置由于是基于以上的版本兼容性较好所以我们需要的

前言

最近发现了一个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:UsersdengyiAppDataLocalProgramsPythonPython36Scriptsscrapyd-deploy cqvip -p Cqvip

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

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

将我们的本地的egg文件上传到到Deploy.

如果你是多台服务器的话那么这一步便将你所有scrpayd上,部署Wangfang文件.

Dashboard 是仪表盘在这里你可以启动你的spider跟监控spider的运行状态.

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/41382.html

相关文章

  • Scrapy-Cluster结合Spiderkeeper管理分布式爬虫

    摘要:分布式爬虫,分发网址是基于地址。注意要使用管理同一个集群,爬虫项目名称须一致,同时集群中配置相同任务浏览器访问启动爬虫时即可看见两个集群配置,启动同名爬虫开始分布式爬虫启动分布式爬虫后状态 Scrapy-cluster 建设 基于Scrapy-cluster库的kafka-monitor可以实现分布式爬虫 Scrapyd+Spiderkeeper实现爬虫的可视化管理 环境 IP...

    bingo 评论0 收藏0
  • scrapyd部署爬虫项目到LINUX服务器

    摘要:,首先把爬虫项目上传到服务器我的服务器架设在公司内网里。部署名会在后面的部署项目环节用到。新项目创建创建完成。,部署项目的文件想要爬虫程序真正进行抓取起来,还有一步。选择文件,部署文件至此,部署爬虫项目就结束了。 1,首先把scrapy爬虫项目上传到服务器 我的服务器架设在公司内网里。所以在这里使用WinSCP作为上传工具。showImg(https://segmentfault....

    cppowboy 评论0 收藏0
  • 基于Celery的分布式爬虫管理平台: Crawlab

    摘要:基于的爬虫分布式爬虫管理平台,支持多种编程语言以及多种爬虫框架。后台程序会自动发现这些爬虫项目并储存到数据库中。每一个节点需要启动应用来支持爬虫部署。任务将以环境变量的形式存在于爬虫任务运行的进程中,并以此来关联抓取数据。 Crawlab 基于Celery的爬虫分布式爬虫管理平台,支持多种编程语言以及多种爬虫框架。 Github: https://github.com/tikazyq/...

    legendaryedu 评论0 收藏0
  • 利用Python实现自动化监控文件夹完成服务部署

      小编写这篇文章的一个主要目的,主要是来给大家做一个介绍,介绍的内容是关于Python的,比如说,利用Python实现自动化监控文件,并把这些文件部署在服务器上面,具体的部署过程,下面给大家做个解答。  大家好,我是安果!  最近在部署前端项目的时候,需要先将前端项目压缩包通过堡垒机上传到应用服务器的/tmp目录下,然后进入应用服务器中,使用mv命令将压缩文件移动到Nginx项目设定目录,最后使...

    89542767 评论0 收藏0
  • Gitlab CI/CD执行流程

    一、什么是CI/CDCI 持续集成CD 持续交付CI/CD就是在开发阶段,通过自动化发布,来频繁部署应用的一种方式二、为什么要配置CI/CD想象一下,一个项目的发布如果手动部署,需要的操作有:单元测试打包文件上传服务器等等如果每个过程都需要手动执行,每次都要保证不出错,这个已经很繁琐了。而现在大的前端项目多达10+的人开发,而且人员流动大。如果每个人都这么发布,快速迭代就容易出错。这时候就需要CI...

    社区管理员 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<