CyberYozh Open Scraper:官方指南
CyberYozh 拥有自己的免费开源抓取工具:Open Scraper。它可在 GitHub 上获取,通过 Docker 约 20 分钟即可安装,部署在本地主机上,并可通过任何网络浏览器访问。只需最基本的编程知识,因为 Open Scraper 包含用于抓取、爬取和会话管理操作的预定义代码脚本,您只需定义代理和目标站点即可。
不要浪费时间,立即在 GitHub 上查看 Open Scraper 。
准备 Open Scraper:选择代理
在开始抓取之前,选择正确的代理类型至关重要。
立即注册 CyberYozh (如果您还没有注册)。之后,让我们为您的任务选择最佳代理。
住宅代理:价格抓取、AI 训练和大多数任务
轮换住宅代理 是大规模抓取和自动化最常见的选择。它们从全球真实家庭地址的大型 IP 池中提取,使每个请求看起来都来自不同的真实用户。这使它们非常适合:
电子商务价格监控
AI/ML 数据集收集
竞争对手和品牌情报
广告验证和市场研究
静态住宅代理 通常不用于抓取。它们为单个配置文件管理等操作提供单个、独立的长期 IP 地址。在某些情况下,可以使用多个静态 IP,每个会话分配给单个 IP。
移动代理:高精度社交抓取
移动代理 具有最高的信任评分,并针对移动优先应用进行了优化,使其成为 Instagram 和 TikTok 等应用的首选。它们通过真实的 LTE/5G 运营商网络路由流量,使其与智能手机用户无法区分。用于:
社交媒体数据抓取
影响者和受众分析
基于应用的平台
查看 移动代理与住宅代理对比 以获取完整分析。
数据中心代理:开放数据抓取和测试
数据中心代理 速度非常快,但与非住宅、类似机器人的流量相关联,因此被许多受保护的平台屏蔽。用于:
开放数据库抓取
测试和开发
详细了解 数据中心代理与住宅代理的区别 以及何时使用每种代理。
使用 Docker 下载并安装 Open Scraper
如前所述,Open Scraper 可以在不到 20 分钟内完成安装。它需要 Docker,并可通过浏览器访问 localhost,这在一开始可能有些不寻常,但其实非常简单。
安装 Docker
访问 Docker 官网 ,下载适用于您操作系统(Windows、macOS 或 Linux)的 Docker Desktop。

运行安装程序并按照屏幕提示操作。Docker Desktop 个人使用免费。安装完成后,启动 Docker Desktop 并确认其正在运行,然后再继续下一步。

从 GitHub 下载 Open Scraper
访问 GitHub 上的 Open Scraper 仓库 。点击绿色的 Code 按钮,然后选择 Download ZIP。

或者,通过 Git 克隆:
git clone https://github.com/CyberYozh-data/yozh-scraper
cd yozh-scraper 在进行构建步骤之前,先进入该文件夹。
了解更多关于 GitHub 代理
使用 Docker 构建 Open Scraper
创建环境文件并添加您的 CyberYozh API 密钥:
cp .env.example .env # create the environment file
# Open .env and set: CYBERYOZH_API_KEY="your_key_here" 然后使用单个命令构建并启动所有服务:
docker compose up --buildDocker 将自动拉取所有依赖项并启动 Open Scraper 和 Open Crawler 容器。打开 Docker 查看其运行状态:

通过任意浏览器访问 Open Scraper
两个工具现在都通过特定端口在 localhost(127.0.0.1)上运行。使用 curl验证它们是否处于活动状态:
curl http://localhost:8000/api/v1/health
# {"status":"ok","workers":2}
curl http://localhost:8001/api/v1/health
# {"status":"ok","workers":2,"scraper_reachable":true,...} 访问交互式 API 文档:
Open Scraper: http://localhost:8000/docs#/
打开 Crawler: http://localhost:8001/docs#/
两个文档页面都包含带有预定义参数的可运行脚本。您无需编写任何额外代码;只需填入您的目标值。使用 curl 命令即可轻松完成,如下一节所示。
对于高级抓取,请探索 Playwright 设置指南 和 Python 代理配置。
使用 Open Scraper 和 Open Crawler
设置完成后,您将拥有两个可通过浏览器访问的 API 界面。所有操作都可以通过 GUI 启动 API 命令(点击任意端点上的 Try it out )或直接从终端提交 curl 命令来触发。以下是所有主要操作。
探索 最佳 IP 轮换策略 以针对特定用例以最佳方式设置您的代理。
1. 通过 API 密钥向 Open Scraper 添加代理
打开项目根目录中的 .env 文件并设置您的 CyberYozh API 密钥:
CYBERYOZH_API_KEY="your_key_here"然后,在 API 脚本中(或通过 curl 命令,如您稍后将看到的),指定 proxy_type 参数以激活代理。默认值为 none (直接连接):
proxy_type | 说明 |
res_rotating | 住宅轮换 — 推荐默认选项 |
res_static | 住宅静态(专用 IP) |
mobile | 移动/LTE,专用 |
mobile_shared | 移动/LTE,共享池 |
dc_static | 数据中心静态 |
none | 直接连接,无代理 |
对于 地理定位,请在任何脚本中添加 proxy_geo 字典,包含以下字段:
字段 | 类型 | 描述 |
country_code | string | ISO 3166-1 alpha-2(例如«US»、«GB») |
region | string | 地区/州名称 |
city | string | 城市名称(例如«London») |
在 CyberYozh App 文章中阅读更多关于 地理定位及其特性 的内容。
所有爬取和抓取命令都可以通过终端中的 curl 提交,或通过本地主机文档页面交互运行。让我们仔细看看。
2. 在目标网站上启动爬取操作
使用 创建爬取 从 Open Crawler 发送 POST 命令以启动全站爬取。

指定种子 URL、范围限制、请求速率和代理类型:
# Submit a crawl
curl -X POST http://localhost:8001/api/v1/crawl \
-H "Content-Type: application/json" \
-d '{
"seed_url": "https://example.com",
"scope": {
"mode": "same-domain",
"max_depth": 2,
"max_pages": 50,
"per_domain_rps": 1.0,
"per_domain_concurrency": 1
},
"scrape_options": {
"proxy_type": "res_rotating"
},
"crawl_proxy": null,
"enable_scraping": false
}'
# {"job_id":"crawl_abc123"} 需要配置的关键参数:
seed_url 用于设置目标站点的起始 URL
max_pages / max_depth 用于设置范围限制以控制广度和成本
per_domain_rps 用于设置每秒请求数;保持为 1.0 以避免触发速率限制
proxy_type 在大多数使用场景中应设置为 res_rotating
启动后,您将收到一个 job_id (在本例中为 crawl_abc123)。使用它来监控和管理爬取:
# Poll crawl status
curl http://localhost:8001/api/v1/crawl/crawl_abc123
# Retrieve full results (all visited pages + stats)
curl http://localhost:8001/api/v1/crawl/crawl_abc123/results
# Live event stream (SSE)
curl -N http://localhost:8001/api/v1/crawl/crawl_abc123/events
# Cancel softly (drains in-flight requests)
curl -X DELETE "http://localhost:8001/api/v1/crawl/crawl_abc123?hard=false"
# Cancel hard (aborts all in-flight tasks immediately)
curl -X DELETE "http://localhost:8001/api/v1/crawl/crawl_abc123?hard=true" 在 CyberYozh 博客中阅读更多关于 网页解析工具 的内容。
3. 从目标站点抓取和解析数据
对于单页抓取,使用 Open Scraper 的 Scrape Page 命令

使用 b,过程非常简单:
curl -s -X POST http://localhost:8000/api/v1/scrape/page \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"proxy_type": "res_rotating"
}' 要在一个任务中抓取多个页面,使用 Scrape Pages:
curl -s -X POST http://localhost:8000/api/v1/scrape/pages \
-H "Content-Type: application/json" \
-d '{
"pages": [
{"url":"https://example.com","proxy_type":"res_rotating"},
{"url":"https://example.org","proxy_type":"res_rotating"}
]
}' 与爬取类似,这两个命令都会返回一个 job_id。使用它来检查状态并获取结果:
# Check scrape status
curl -s http://localhost:8000/api/v1/scrape/<your_job_id>
# Fetch scrape results
curl -s http://localhost:8000/api/v1/scrape/<your_job_id>/results 有关基于 Python 的爬虫的高级重试和错误处理配置,请参阅 Python 请求重试优化。
4. 使用预设配置优化抓取
Open Scraper 包含针对热门数据源的预构建预设。无需手动配置选择器,只需选择源名称并传递所需参数:
名称 | 来源 | 参数 | 区域 |
amazon_product | amazon | asin | us, uk, de, fr, jp |
amazon_search | amazon | query | us, uk, de |
google_search | query | us, uk, de, fr, ru, jp | |
google_shopping | query | us, uk, de | |
ebay_search | ebay | query | us, uk, de |
walmart_product | walmart | product_id | us |
youtube_video | youtube | video_id | global |
linkedin_profile | username | global(需要认证会话) |
要使用预设进行抓取,请使用 预设页面抓取 或 抓取预设页面 命令:
curl -X POST http://localhost:8000/api/v1/scrape/preset/page \
-H 'Content-Type: application/json' \
-d '{
"source": "amazon_product",
"preset_params": {"asin": "B08N5WRWNW"},
"locale": "us",
"llm": {"model": "openai/gpt-5.4-mini"}
}'
# -> {"job_id": "..."} then GET /api/v1/scrape/<job_id>/results 可选的 llm 参数可启用 AI 模型在解析过程中进行自我纠正。要使用它,您需要在 OPENAI_API_KEY)添加到您的 .env 文件中,与您的 CYBERYOZH_API_KEY一起。
LLM 辅助解析对于不一致或动态的页面结构非常有用,在这些情况下仅使用 CSS 选择器可能会遗漏内容。
5. 启动粘性会话
粘性会话允许 Open Scraper 在多个请求之间维持一致的浏览器状态,包括 Cookie、身份验证和 IP 地址。可用于抓取登录墙后的内容。
创建会话:
curl -X POST http://localhost:8000/api/v1/sessions \
-H 'content-type: application/json' \
-d '{"device":"desktop","proxy_type":"res_rotating","ttl_seconds":3600}'使用登录脚本对会话进行身份验证:
curl -X POST http://localhost:8000/api/v1/sessions/$ID/login \
-H 'content-type: application/json' \
-d '{
"creds":{"email":"tomsmith","password":"SuperSecretPassword!"},
"script":{
"steps":[
# Your target website
{"op":"goto","url":"https://the-internet.herokuapp.com/login"},
{"op":"fill","selector":"#username","value":"$creds_email"},
{"op":"fill","selector":"#password","value":"$creds_password"},
{"op":"click","selector":"button[type=submit]"},
{"op":"wait_for_selector","selector":".flash.success"}
],
"success_selector":".flash.success"
}
}' 或者,直接注入会话 Cookie:
curl -X POST http://localhost:8000/api/v1/sessions/$ID/cookies \
-H 'content-type: application/json' \
-d '{"cookies":[{"name":"sessionid","value":"abc","domain":".example.com","path":"/","expires":1800000000,"httpOnly":true,"secure":true,"sameSite":"Lax"}]}' 会话通过身份验证后,在任何后续的 session_id 传入 Scrape Page 或 Scrape Pages 命令中,以在相同的已认证状态下继续操作。
粘性会话 是一个持久的浏览器上下文,可在多个请求之间保留 Cookie、身份验证令牌和代理分配。对于需要登录或在页面浏览过程中维持反机器人状态的平台抓取至关重要。
结论:免费的网页抓取和自动化
Open Scraper 和 Open Crawler 是生产就绪的、免费的开源工具,用于抓取、爬取和结构化数据提取。通过 Docker 在 20 分钟内安装它们,在两行 .env 配置中连接您的 CyberYozh 代理,并通过 curl 运行所有操作,无需编码。
关于 CyberYozh App 的 Open Scraper 的常见问题
目前最好的免费网页抓取工具是什么?
CyberYozh App 的 Open Scraper 是顶级的免费开源选择:它不需要订阅,通过 Docker 在本地运行,并内置代理轮换功能。
CyberYozh App 的 Open Scraper 真的免费吗?
是的,该工具本身完全免费且开源。只有在需要代理用于反封禁保护或地理定位时才需要付费。
最好的开源网页抓取工具有哪些?
常见选项包括 Scrapy、Playwright、Puppeteer 和 CyberYozh Open Scraper,后者独特地将现成的 API 接口与原生代理基础设施相结合。
网页抓取需要代理吗?
并非总是需要,但对于大规模或商业抓取,网页抓取代理服务对于避免 IP 封禁和绕过速率限制至关重要。
什么是网页抓取代理服务?
网页抓取代理服务通过真实 IP 池路由您的抓取请求,使每个请求看起来都来自不同的合法用户。
轮换代理和静态代理在抓取中有什么区别?
轮换代理为每个请求分配新的 IP 地址,以提供大规模匿名性。静态代理保持一个固定 IP,适用于基于会话或特定账户的任务。
没有编程经验可以使用免费的网页抓取 API 吗?
可以。Open Scraper 的本地文档提供预构建的 API 脚本:只需填入 URL 和代理类型,然后点击运行。无需自定义代码。
抓取社交媒体应该使用什么类型的代理?
移动代理提供最高的信任评分,最适合 Instagram、TikTok 和类似的移动优先平台,这些平台会积极过滤非移动流量。
如何避免在网页抓取时被封禁?
使用轮换住宅或移动代理,限制每秒请求数(per_domain_rps),启用隐身模式,并在每个请求中轮换 user-agent 标头。
Open Scraper 能处理 JavaScript 渲染的页面吗?
可以。Open Scraper 基于 Playwright 构建,可以渲染完整的浏览器会话,包括 JavaScript、单页应用和动态加载的内容。
网页抓取和网页爬取有什么区别?
爬取是映射和索引网站中的 URL;抓取是从这些页面中提取结构化数据。Open Scraper 包含两种工具:Open Crawler 用于发现,Open Scraper 用于提取。
如何为 Open Scraper 设置网页抓取代理?
在 .env 文件中的 CYBERYOZH_API_KEY下添加您的 CyberYozh API 密钥,然后在任何抓取命令中将 proxy_type 设置为 res_rotating 。就这样。
