ScraperAPI 全球访问技能
通过 ScraperAPI 实现全球多国 IP 访问网站,支持 JS 渲染、用户行为模拟、性能监控。
功能特性
- - ✅ 25+ 国家代理 - 覆盖北美、南美、欧洲、亚洲、大洋洲、非洲
- ✅ JS 渲染 - 触发 Google Analytics、Facebook Pixel 等统计代码
- ✅ 用户行为模拟 - 模拟真实用户浏览路径(首页→工具页→价格页)
- ✅ 性能监控 - 记录响应时间,分析全球访问速度
- ✅ 断点续传 - 任务中断后可继续,不丢失进度
- ✅ 数据导出 - 自动生成 JSON 报告、CSV 数据、性能分析
使用场景
| 场景 | 说明 |
|---|
| 广告验证 | 验证广告在不同地区的投放效果 |
| 竞品分析 |
监控竞品网站在全球的可用性和性能 |
|
SEO 监控 | 检查网站在不同地区的 SEO 表现 |
|
GA 测试 | 验证 Google Analytics 是否正确触发 |
|
CDN 对比 | 对比不同 CDN 在全球的性能 |
|
可用性监控 | 定期检查网站在全球的可访问性 |
前置要求
1. 安装依赖
CODEBLOCK0
2. 获取 ScraperAPI Key
访问 ScraperAPI Dashboard 获取 API Key。
3. 配置环境变量
在工作目录创建 .env 文件:
CODEBLOCK1
快速开始
基础用法:单国访问
CODEBLOCK2
全球覆盖:25国测试
CODEBLOCK3
用户行为模拟
CODEBLOCK4
性能监控
CODEBLOCK5
脚本说明
1. single_visit.js - 单次访问
访问指定 URL,使用指定国家的代理。
参数:
- -
--url - 目标网址(必填) - INLINECODE3 - 国家代码(默认:us)
- INLINECODE4 - 是否渲染 JS(默认:true)
- INLINECODE5 - 输出文件路径(可选)
示例:
CODEBLOCK6
2. global_coverage.js - 全球覆盖
使用 25 个国家的 IP 访问目标网站。
参数:
- -
--url - 目标网址(必填) - INLINECODE8 - 是否渲染 JS(默认:true)
- INLINECODE9 - 访问间隔(秒,默认:5)
- INLINECODE10 - 输出目录(默认:./reports)
示例:
CODEBLOCK7
输出文件:
- -
global_report.json - 完整 JSON 报告 - INLINECODE12 - 访问记录 CSV
- INLINECODE13 - 性能数据 CSV
3. user_journey.js - 用户旅程模拟
模拟真实用户浏览多个页面。
参数:
- -
--url - 网站根 URL(必填) - INLINECODE16 - 页面路径列表(逗号分隔,默认:/,/pricing,/about)
- INLINECODE17 - 国家代码列表(逗号分隔,默认:us,uk,jp)
- INLINECODE18 - 最小停留时间(秒,默认:3)
- INLINECODE19 - 最大停留时间(秒,默认:6)
示例:
CODEBLOCK8
4. performance_monitor.js - 性能监控
定期访问网站,记录性能数据。
参数:
- -
--url - 目标网址(必填) - INLINECODE22 - 监控间隔(秒,默认:3600)
- INLINECODE23 - 监控的国家(逗号分隔,默认:us,uk,de,jp,sg)
- INLINECODE24 - 运行时长(秒,0=无限,默认:0)
示例:
CODEBLOCK9
支持的国家代码
br, ar, cl |
|
欧洲 | gb, de, fr, it, es, nl, se, pl |
|
亚洲 | jp, kr, sg, in, id, th |
|
大洋洲 | au, nz |
|
非洲 | za, eg, ng |
完整列表见 ScraperAPI 文档。
配置选项
全局配置文件
创建 config.json:
CODEBLOCK10
环境变量
| 变量名 | 说明 | 默认值 |
|---|
| INLINECODE26 | ScraperAPI 密钥 | 必填 |
| INLINECODE27 |
请求超时(毫秒) | 90000 |
|
SCRAPER_RENDER | 默认是否渲染 JS | true |
|
OUTPUT_DIR | 输出目录 | ./reports |
断点续传
所有脚本支持断点续传,中断后重新运行会自动继续:
CODEBLOCK11
进度保存在 progress.json,可手动删除以重新开始。
数据格式
JSON 报告格式
CODEBLOCK12
CSV 格式
CODEBLOCK13
最佳实践
1. 避免触发反爬
CODEBLOCK14
2. 合理使用 JS 渲染
CODEBLOCK15
3. 错误处理
CODEBLOCK16
4. 性能优化
- - 使用
session_number 参数复用会话 - 批量任务使用断点续传
- 定期清理旧的进度文件
故障排查
问题:API 返回 429 错误
原因:请求过快,超出配额。
解决:
- 1. 增加
--interval 参数 - 检查 ScraperAPI 配额
- 升级 ScraperAPI 套餐
问题:某些国家返回 500 错误
原因:目标网站在该地区不可用,或 ScraperAPI 代理问题。
解决:
- 1. 检查目标网站是否有地区限制
- 重试几次(脚本会自动记录失败)
- 联系 ScraperAPI 支持
问题:JS 渲染后仍看不到 GA 数据
原因:
- 1. GA 开启了 Bot Filtering
- 需要用户同意 Cookie
- GA 实时报告延迟
解决:
- 1. 检查 GA 设置中的 Bot Filtering
- 增加页面停留时间
- 等待 5-10 分钟查看实时报告
进阶用法
自定义国家列表
编辑 scripts/countries.json:
CODEBLOCK17
集成到 OpenClaw Cron
CODEBLOCK18
数据可视化
使用生成的 CSV 文件:
CODEBLOCK19
API 参考
visitPage(country, url, options)
访问单个页面。
参数:
- -
country - 国家对象 INLINECODE35 - INLINECODE36 - 目标 URL
- INLINECODE37 - 配置选项
-
render - 是否渲染 JS(默认:true)
-
timeout - 超时时间(默认:90000)
-
sessionNumber - 会话编号(可选)
返回:
CODEBLOCK20
许可证
MIT License
更新日志
v1.0.0 (2026-03-20)
- - ✨ 初始版本
- ✅ 支持 25+ 国家代理
- ✅ JS 渲染支持
- ✅ 用户行为模拟
- ✅ 性能监控
- ✅ 断点续传
- ✅ 数据导出(JSON/CSV)
贡献
欢迎提交 Issue 和 Pull Request!
支持
ScraperAPI 全球访问技能
通过 ScraperAPI 实现全球多国 IP 访问网站,支持 JS 渲染、用户行为模拟、性能监控。
功能特性
- - ✅ 25+ 国家代理 - 覆盖北美、南美、欧洲、亚洲、大洋洲、非洲
- ✅ JS 渲染 - 触发 Google Analytics、Facebook Pixel 等统计代码
- ✅ 用户行为模拟 - 模拟真实用户浏览路径(首页→工具页→价格页)
- ✅ 性能监控 - 记录响应时间,分析全球访问速度
- ✅ 断点续传 - 任务中断后可继续,不丢失进度
- ✅ 数据导出 - 自动生成 JSON 报告、CSV 数据、性能分析
使用场景
| 场景 | 说明 |
|---|
| 广告验证 | 验证广告在不同地区的投放效果 |
| 竞品分析 |
监控竞品网站在全球的可用性和性能 |
|
SEO 监控 | 检查网站在不同地区的 SEO 表现 |
|
GA 测试 | 验证 Google Analytics 是否正确触发 |
|
CDN 对比 | 对比不同 CDN 在全球的性能 |
|
可用性监控 | 定期检查网站在全球的可访问性 |
前置要求
1. 安装依赖
bash
npm install axios
2. 获取 ScraperAPI Key
访问 ScraperAPI Dashboard 获取 API Key。
3. 配置环境变量
在工作目录创建 .env 文件:
env
SCRAPERAPIKEY=yourapikey_here
快速开始
基础用法:单国访问
bash
node scripts/single_visit.js --url https://example.com --country us
全球覆盖:25国测试
bash
node scripts/global_coverage.js --url https://example.com
用户行为模拟
bash
node scripts/user_journey.js --url https://example.com --countries us,uk,jp
性能监控
bash
node scripts/performance_monitor.js --url https://example.com --interval 3600
脚本说明
1. single_visit.js - 单次访问
访问指定 URL,使用指定国家的代理。
参数:
- - --url - 目标网址(必填)
- --country - 国家代码(默认:us)
- --render - 是否渲染 JS(默认:true)
- --output - 输出文件路径(可选)
示例:
bash
node scripts/single_visit.js --url https://faceswap.cool --country jp --render true
2. global_coverage.js - 全球覆盖
使用 25 个国家的 IP 访问目标网站。
参数:
- - --url - 目标网址(必填)
- --render - 是否渲染 JS(默认:true)
- --interval - 访问间隔(秒,默认:5)
- --output-dir - 输出目录(默认:./reports)
示例:
bash
node scripts/global_coverage.js --url https://example.com --interval 3
输出文件:
- - globalreport.json - 完整 JSON 报告
- globalresults.csv - 访问记录 CSV
- performance_data.csv - 性能数据 CSV
3. user_journey.js - 用户旅程模拟
模拟真实用户浏览多个页面。
参数:
- - --url - 网站根 URL(必填)
- --pages - 页面路径列表(逗号分隔,默认:/,/pricing,/about)
- --countries - 国家代码列表(逗号分隔,默认:us,uk,jp)
- --wait-min - 最小停留时间(秒,默认:3)
- --wait-max - 最大停留时间(秒,默认:6)
示例:
bash
node scripts/user_journey.js \
--url https://example.com \
--pages /,/tools/face-swap,/pricing \
--countries us,uk,de,jp \
--wait-min 3 \
--wait-max 8
4. performance_monitor.js - 性能监控
定期访问网站,记录性能数据。
参数:
- - --url - 目标网址(必填)
- --interval - 监控间隔(秒,默认:3600)
- --countries - 监控的国家(逗号分隔,默认:us,uk,de,jp,sg)
- --duration - 运行时长(秒,0=无限,默认:0)
示例:
bash
每小时监控一次,持续 24 小时
node scripts/performance_monitor.js \
--url https://example.com \
--interval 3600 \
--duration 86400
支持的国家代码
br, ar, cl |
|
欧洲 | gb, de, fr, it, es, nl, se, pl |
|
亚洲 | jp, kr, sg, in, id, th |
|
大洋洲 | au, nz |
|
非洲 | za, eg, ng |
完整列表见 ScraperAPI 文档。
配置选项
全局配置文件
创建 config.json:
json
{
scraperapi: {
apiKey: yourapikey,
defaultRender: true,
timeout: 90000,
retries: 3
},
monitoring: {
interval: 3600,
countries: [us, uk, de, jp, sg],
alertThreshold: 30000
},
output: {
format: json,
directory: ./reports,
keepHistory: true
}
}
环境变量
| 变量名 | 说明 | 默认值 |
|---|
| SCRAPERAPIKEY | ScraperAPI 密钥 | 必填 |
| SCRAPER_TIMEOUT |
请求超时(毫秒) | 90000 |
| SCRAPER_RENDER | 默认是否渲染 JS | true |
| OUTPUT_DIR | 输出目录 | ./reports |
断点续传
所有脚本支持断点续传,中断后重新运行会自动继续:
bash
第一次运行(中断)
node scripts/global_coverage.js --url https://example.com
重新运行(自动跳过已完成的国家)
node scripts/global_coverage.js --url https://example.com
进度保存在 progress.json,可手动删除以重新开始。
数据格式
JSON 报告格式
json
{
generatedAt: 2026-03-20T05:00:00.000Z,
summary: {
totalVisits: 37,
successfulVisits: 35,
failedVisits: 2,
successRate: 94.6%
},
globalCoverage: {
countries: 25,
regions: 6
},
results: [
{
success: true,
country: 美国,
countryCode: us,
region: 北美,
page: /,
title: Example Site,
status: 200,
size: 188759,
responseTime: 38629,
timestamp: 2026-03-20T04:49:11.106Z
}
],
performanceData: [...]
}
CSV 格式
csv
Country,Region,Page,Status,ResponseTime,Title,Timestamp
美国,北美,/,Success,38629,Example Site,2026-03-20T04:49:11.106Z
最佳实践
1. 避免触发反爬
javascript
// ✅ 推荐:随机间隔
const waitTime = Math.random() * 3000 + 3000; // 3-6秒
// ❌ 不推荐:固定间隔
const waitTime = 2000; // 太规律
2. 合理使用 JS 渲染
javascript
// ✅ 需要触发 GA 时开启
render: true
// ✅ 只抓取 HTML 时关闭(更快)
render: false
3. 错误处理
javascript
try {
const result = await visitPage(country, url);
saveProgress(result);
} catch (error) {
console.error(访问失败:, error.message);