korean-scraper
韩国网站专业爬虫 — 基于Playwright,从Naver、Coupang、Daum等韩国主要网站提取结构化数据。包含反爬虫保护绕过功能。
使用场景
- - 收集Naver博客搜索结果或提取特定博客正文
- 爬取Naver Cafe热门/最新帖子
- 收集Coupang商品信息(价格、评论、评分)
- 提取Naver新闻/Daum新闻文章正文
- 针对韩国网站的自动化数据收集
安装
bash
cd skills/korean-scraper
npm install
npx playwright install chromium
快速开始
Naver博客
bash
收集搜索结果
node scripts/naver-blog.js search 美食推荐 --limit 10
提取特定博客正文
node scripts/naver-blog.js extract https://blog.naver.com/...
Naver Cafe
bash
收集热门帖子
node scripts/naver-cafe.js popular CafeURL --limit 20
收集最新帖子
node scripts/naver-cafe.js recent CafeURL --limit 20
Coupang商品
bash
提取商品信息
node scripts/coupang.js product 商品URL
收集搜索结果
node scripts/coupang.js search 无线耳机 --limit 20
Naver新闻
bash
收集搜索结果
node scripts/naver-news.js search AI --limit 10
提取文章正文
node scripts/naver-news.js extract https://n.news.naver.com/...
Daum新闻
bash
收集搜索结果
node scripts/daum-news.js search 经济 --limit 10
提取文章正文
node scripts/daum-news.js extract https://v.daum.net/...
输出格式
所有脚本返回结构化JSON:
Naver博客搜索
json
{
status: success,
query: 美食推荐,
count: 10,
results: [
{
title: 首尔江南美食推荐TOP 5,
url: https://blog.naver.com/...,
blogger: 美食探险家,
date: 2026-02-15,
snippet: 江南站附近的隐藏美食...
}
]
}
Naver博客正文
json
{
status: success,
url: https://blog.naver.com/...,
title: 首尔江南美食推荐TOP 5,
author: 美食探险家,
date: 2026-02-15,
content: # 首尔江南美食推荐TOP 5\n\n1. ...,
images: [https://...],
tags: [美食, 江南, 首尔]
}
Coupang商品
json
{
status: success,
url: https://www.coupang.com/...,
productName: Apple AirPods Pro 2代,
price: 299000,
originalPrice: 359000,
discount: 17%,
rating: 4.8,
reviewCount: 1523,
rocketDelivery: true,
seller: Coupang,
images: [https://...]
}
Naver Cafe
json
{
status: success,
cafeUrl: https://cafe.naver.com/...,
type: popular,
count: 20,
posts: [
{
title: 新人会员报到,
url: https://cafe.naver.com/.../12345,
author: 昵称,
date: 2026-02-17,
views: 523,
comments: 12
}
]
}
新闻文章
json
{
status: success,
url: https://n.news.naver.com/...,
title: AI市场规模预计快速增长,
media: 朝鲜日报,
author: 洪吉童 记者,
date: 2026-02-17 09:30,
content: # AI市场规模预计快速增长\n\n...,
category: IT/科学,
images: [https://...]
}
反爬虫功能
- - 隐藏navigator.webdriver — 避免自动化检测
- 使用真实User-Agent — 移动/桌面随机切换
- 模拟人类行为 — 随机延迟、滚动
- 隐身插件 — Playwright extra stealth
- 绕过Cloudflare — 自动调整等待时间
速率限制
所有脚本默认保护目标网站:
- - 每次请求随机延迟2-5秒
- 同一域名每秒最多1次请求
- 遇到429响应自动退避
- 可使用--fast标志减少延迟(注意风险)
错误处理
| 情况 | 操作 |
|---|
| 404 | 返回JSON错误,继续执行 |
| 403/被屏蔽 |
重试(最多3次) |
| 超时 | 延长等待时间后重试 |
| 需要登录 | 警告信息 + 仅返回可用数据 |
环境变量
bash
关闭无头模式(调试用)
HEADLESS=false node scripts/naver-blog.js ...
保存截图
SCREENSHOT=true node scripts/coupang.js ...
调整等待时间(毫秒)
WAIT_TIME=10000 node scripts/naver-cafe.js ...
自定义User-Agent
USER_AGENT=... node scripts/naver-news.js ...
集成示例
OpenClaw Agent集成
javascript
// Naver博客搜索
const result = await exec({
command: node scripts/naver-blog.js search AI趋势 --limit 5,
workdir: /path/to/skills/korean-scraper
});
const data = JSON.parse(result.stdout);
批量处理
bash
批量处理多个URL
cat urls.txt | while read url; do
node scripts/naver-blog.js extract $url >> results.jsonl
done
局限性
- - 需要登录的内容:目前仅支持非登录状态爬取(如Coupang部分评论)
- 动态加载:无限滚动默认仅加载10条(可通过--scroll标志扩展)
- 验证码:需要手动绕过(无法自动化)
- IP封禁:过度请求可能导致临时封禁(需遵守速率限制)
合规与道德
- - ✅ 仅收集公开信息
- ✅ 遵守robots.txt(默认设置)
- ✅ 通过速率限制最小化服务器负载
- ❌ 禁止收集个人信息
- ❌ 禁止未经授权访问需登录的内容
- ❌ 禁止用于侵犯版权目的
故障排除
问题:403 Forbidden
解决方案:
- 1. 尝试更换User-Agent
- 增加等待时间(WAIT_TIME=15000)
- 关闭无头模式(HEADLESS=false)
问题:返回空结果
解决方案:
- 1. 检查URL格式
- 网站结构可能已变更(需更新选择器)
- 确认是否需要登录
问题:超时
解决方案:
- 1. 增加WAIT_TIME
- 检查网络连接
- 确认网站是否可访问(如是否需要VPN)
维护
韩国网站经常更改UI,可能需要更新选择器。
选择器位置:scripts/目录下各文件顶部的SELECTORS对象
javascript
const SELECTORS = {
blogTitle: .se-title-text,
blogContent: .se-main-container,
// ...
};
未来改进
- - [ ] Instagram帖子爬取
- [ ] Naver购物价格比较
- [ ] YouTube韩国频道元数据
- [ ] 批量处理优化(并行执行)
- [ ] Cookie/会话管理(保持登录)
- [ ] 代理支持
参考