scrapyd 镜像是一个基于 debian:bookworm 的 Docker 镜像,集成了 Scrapy 生态系统的多个最新稳定版工具,旨在提供便捷的环境用于部署和运行 Scrapy 爬虫。该镜像预安装了 8 个核心 Python 包,覆盖爬虫开发、部署、运行、监控、JavaScript 渲染等全流程需求,可作为 Scrapy 项目的基础镜像直接使用。
镜像包含以下最新稳定版 Python 包:
scrapyd-deploy 命令用于部署项目debian:bookworm以下 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
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 格式)
用于快速测试单文件爬虫脚本,无需完整项目结构。
创建爬虫脚本(本地主机操作):
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 可为现有 Scrapy 项目提供 HTTP API,支持通过 URL 直接触发爬虫。
准备示例项目(本地主机操作):
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来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 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 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429