scrapyd Docker 镜像下载 - 轩辕镜像
scrapyd 镜像详细信息和使用指南
scrapyd 镜像标签列表和版本信息
scrapyd 镜像拉取命令和加速下载
scrapyd 镜像使用说明和配置指南
Docker 镜像加速服务 - 轩辕镜像平台
国内开发者首选的 Docker 镜像加速平台
极速拉取 Docker 镜像服务
相关 Docker 镜像推荐
热门 Docker 镜像下载
scrapyd 镜像详细信息
scrapyd 镜像标签列表
scrapyd 镜像使用说明
scrapyd 镜像拉取命令
Docker 镜像加速服务
轩辕镜像平台优势
镜像下载指南
相关 Docker 镜像推荐
scrapyd 镜像详细说明
scrapyd 使用指南
scrapyd 配置说明
scrapyd 官方文档
scrapyd 镜像文档
镜像概述与主要用途
scrapyd 镜像是一个基于 debian:bookworm 的 Docker 镜像,集成了 Scrapy 生态系统的多个最新稳定版工具,旨在提供便捷的环境用于部署和运行 Scrapy 爬虫。该镜像预安装了 8 个核心 Python 包,覆盖爬虫开发、部署、运行、监控、JavaScript 渲染等全流程需求,可作为 Scrapy 项目的基础镜像直接使用。
核心功能与特性
预安装的核心组件
镜像包含以下最新稳定版 Python 包:
- scrapy==2.11.2:开源网络爬虫框架,用于快速提取网站数据
- scrapyd==1.4.3:运行 Scrapy 爬虫的服务,支持通过 HTTP JSON API 部署和控制爬虫
- scrapyd-client==v1.2.3:Scrapyd 客户端工具,提供
scrapyd-deploy命令用于部署项目 - scrapy-splash==0.9.0:Scrapy 与 Splash 集成工具,支持 JavaScript 渲染页面爬取
- scrapyrt==v0.16.0:为现有 Scrapy 项目添加 HTTP API 的工具
- spidermon==1.22.0:Scrapy 爬虫监控框架,用于构建爬虫运行状态监控
- scrapy-poet==0.22.6:基于 web-poet 的 Page Object 模式实现,简化数据提取逻辑
- scrapy-playwright==v0.0.38:使用 Playwright 作为下载器的 Scrapy 扩展,支持现代 JavaScript 渲染
基础环境
- 基础镜像:
debian:bookworm - 支持 Python 3.11+(Scrapy 2.0.0+ 已不再支持 Python 2.7)
使用场景与适用范围
- Scrapy 项目开发与测试:快速搭建包含全套工具的开发环境,无需手动安装依赖
- 爬虫部署与运行:通过 Scrapyd 服务管理爬虫生命周期,支持远程部署和调度
- JavaScript 渲染需求:集成 scrapy-splash 和 scrapy-playwright,应对动态加载页面爬取
- 爬虫监控与告警:通过 spidermon 实现爬虫运行状态监控和异常告警
- HTTP API 集成:使用 scrapyrt 为现有爬虫项目提供 HTTP 接口,便于外部系统调用
详细使用方法与配置说明
Docker Compose 配置示例
以下 docker-compose.yml 定义了三个服务:scrapyd(后台服务)、scrapy(交互式开发)、scrapyrt(实时 API 服务):
yamlversion: "3.8" services: # Scrapyd 后台服务:部署和运行爬虫 scrapyd: image: easypi/scrapyd ports: - "6800:6800" # Scrapyd 默认端口 volumes: - ./data:/var/lib/scrapyd # 持久化存储爬虫数据(如 items、日志) - /usr/local/lib/python3.11/dist-packages # 挂载 Python 依赖(可选) restart: unless-stopped # Scrapy 交互式开发环境:用于编写和测试爬虫 scrapy: image: easypi/scrapyd command: bash # 启动交互式 shell volumes: - .:/code # 挂载本地项目代码 working_dir: /code # 工作目录设为项目根目录 restart: unless-stopped # Scrapyrt 实时 API 服务:为爬虫提供 HTTP 接口 scrapyrt: image: easypi/scrapyd command: scrapyrt -i 0.0.0.0 -p 9080 # 启动 scrapyrt,绑定所有接口和 9080 端口 ports: - "9080:9080" # Scrapyrt 默认端口 volumes: - .:/code # 挂载本地项目代码 working_dir: /code # 工作目录设为项目根目录 restart: unless-stopped
作为后台服务运行 Scrapyd
启动 Scrapyd 服务
bash# 后台启动 scrapyd 服务 docker-compose up -d scrapyd # 查看服务日志 docker-compose logs -f scrapyd
部署并运行爬虫项目
-
准备开发环境(本地主机操作):
bash# 创建 Python 虚拟环境 mkvirtualenv -p python3 webbot # 安装 scrapy 和 scrapyd-client(用于部署) pip install scrapy scrapyd-client # 创建 Scrapy 项目 scrapy startproject myproject cd myproject # 将项目关联到虚拟环境(可选) setvirtualenvproject # 生成示例爬虫 scrapy genspider myspider mydomain.com # 编辑爬虫代码(按需修改) scrapy edit myspider # 验证爬虫列表 scrapy list -
配置部署参数:编辑项目根目录下的
scrapy.cfg:ini[settings] default = myproject.settings # 项目默认配置 [deploy] url = http://localhost:6800/ # Scrapyd 服务地址(与 docker-compose 映射一致) project = myproject # 项目名称 -
部署项目到 Scrapyd:
bash# 部署项目 scrapyd-client deploy # 调度爬虫运行 curl http://localhost:6800/schedule.json -d project=myproject -d spider=myspider -
访问 Scrapyd 管理界面:打开浏览器访问
http://localhost:6800,可查看爬虫状态、调度任务等。 -
获取爬取结果:
bash# 从容器中复制爬取的 items 数据到本地 docker cp scrapyd_scrapyd_1:/var/lib/scrapyd/items . # 查看数据文件结构 tree items # 示例输出: # items # └── myproject # └── myspider # └── ad6153ee5b0711e68bc70242ac***.jl # 爬取结果文件(JSON Lines 格式)
作为交互式 Shell 运行 Scrapy
用于快速测试单文件爬虫脚本,无需完整项目结构。
示例:爬取 Stack Overflow 热门问题
-
创建爬虫脚本(本地主机操作):
bashcat > stackoverflow_spider.py << _EOF_ import scrapy class StackOverflowSpider(scrapy.Spider): name = 'stackoverflow' start_urls = ['[***]] def parse(self, response): # 提取问题链接并跟进 for href in response.css('.question-summary h3 a::attr(href)'): full_url = response.urljoin(href.extract()) yield scrapy.Request(full_url, callback=self.parse_question) def parse_question(self, response): # 提取问题详情并输出 yield { 'title': response.css('h1 a::text').extract()[0], 'votes': response.css('.question div[itemprop="upvoteCount"]::text').extract()[0], 'body': response.css('.question .postcell').extract()[0], 'tags': response.css('.question .post-tag::text').extract(), 'link': response.url, } _EOF_ -
启动交互式 Shell 并运行爬虫:
bash# 启动 scrapy 服务的交互式 shell docker-compose run --rm scrapy # 在容器内执行爬虫(输出结果到 JSON Lines 文件) scrapy runspider stackoverflow_spider.py -o top-stackoverflow-questions.jl # 查看爬取结果 cat top-stackoverflow-questions.jl # 退出容器 exit
作为实时爬虫运行 Scrapyrt
Scrapyrt 可为现有 Scrapy 项目提供 HTTP API,支持通过 URL 直接触发爬虫。
启动 Scrapyrt 服务并测试
-
准备示例项目(本地主机操作):
bash# 克隆 Scrapy ***示例项目(quotesbot) git clone [***] . -
启动 Scrapyrt 服务:
bashdocker-compose up -d scrapyrt -
通过 HTTP API 触发爬虫:
bash# 调用 scrapyrt API 爬取指定页面(需安装 jq 解析 JSON) curl -s 'http://localhost:9080/crawl.json?spider_name=toscrape-css&callback=parse&url=http://quotes.toscrape.com/&max_requests=5' | jq -c '.items[]'
技术规格
- 基础镜像:
debian:bookworm - 预安装 Python 包版本:
- scrapy==2.11.2
- scrapyd==1.4.3
- scrapyd-client==v1.2.3
- scrapy-splash==0.9.0
- scrapyrt==v0.16.0
- spidermon==1.22.0
- scrapy-poet==0.22.6
- scrapy-playwright==v0.0.38
用户好评
来自真实用户的反馈,见证轩辕镜像的优质服务
常见问题
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
轩辕镜像下载加速使用手册
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
登录仓库拉取
通过 Docker 登录认证访问私有仓库
Linux
在 Linux 系统配置镜像加速服务
Windows/Mac
在 Docker Desktop 配置镜像加速
Docker Compose
Docker Compose 项目配置加速
K8s Containerd
Kubernetes 集群配置 Containerd
宝塔面板
在宝塔面板一键配置镜像加速
群晖
Synology 群晖 NAS 配置加速
飞牛
飞牛 fnOS 系统配置镜像加速
极空间
极空间 NAS 系统配置加速服务
爱快路由
爱快 iKuai 路由系统配置加速
绿联
绿联 NAS 系统配置镜像加速
威联通
QNAP 威联通 NAS 配置加速
Podman
Podman 容器引擎配置加速
Singularity/Apptainer
HPC 科学计算容器配置加速
其他仓库配置
ghcr、Quay、nvcr 等镜像仓库
专属域名拉取
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429