抖音爆款爬虫 Skill
功能概述
使用 OpenClaw browser tool 自动化浏览器操作,爬取抖音热榜和热点视频数据。
⚠️ 重要限制
- 搜索页面被验证码拦截 — 直接访问
douyin.com/search/xxx会触发验证码,无法绕过 - 热榜页面稳定可用 —
douyin.com/hot可正常访问,包含 50 条热榜 + 10 条热点视频 - 搜索请求回退到热榜 — 当用户请求搜索时,返回当前热榜数据并说明限制
使用方法(OpenClaw browser tool)
获取热榜数据
1. browser navigate → https://www.douyin.com/hot
2. 等待页面加载(~3秒)
3. browser act evaluate → 执行下方 JS 提取数据
提取数据的 JavaScript
提取热点视频
(function(){
var results = [];
var links = document.querySelectorAll('a[href*="/video/"]');
var seen = {};
links.forEach(function(el) {
var href = el.getAttribute('href') || '';
if (seen[href]) return;
seen[href] = true;
var text = el.innerText.trim();
var parts = text.split('\n').filter(function(s) { return s.trim(); });
results.push({
title: parts.slice(2).join(' ').substring(0, 100) || text.substring(0, 100),
duration: parts[0] || '',
play_count: parts[1] || '',
url: 'https://www.douyin.com' + href
});
});
return JSON.stringify(results, null, 2);
})()
提取热榜列表
(function(){
var results = [];
document.querySelectorAll('a[href*="/hot/"]').forEach(function(el) {
var heading = el.querySelector('h3, [class*="title"]');
var text = heading ? heading.innerText.trim() : el.innerText.trim().split('\n')[0];
var href = el.getAttribute('href') || '';
if (text && text.length > 1) {
results.push({
title: text,
url: 'https://www.douyin.com' + href
});
}
});
return JSON.stringify(results, null, 2);
})()
自然语言请求处理
| 用户说 | 意图 | 操作 | |--------|------|------| | "搜索一下海鲜视频" | search | 返回热榜数据 + 说明搜索受限 | | "看看抖音热榜" | hot | 获取热榜数据 | | "找一些海鲜售卖相关的视频文案" | search | 返回热榜数据 + 说明搜索受限 | | "抖音有什么热门" | hot | 获取热榜数据 | | "分析这个视频链接:xxx" | analyze | 访问指定视频链接,提取信息 |
关键词提取规则
- 从自然语言中移除"搜索"、"找"、"看看"、"视频"等功能词
- 保留核心搜索词备用
- 搜索请求统一回退到热榜,并告知用户搜索功能因验证码限制暂不可用
命令行脚本(备选)
# 获取热榜
node scripts/douyin_scraper.js hot 20
# 搜索(回退到热榜)
node scripts/douyin_scraper.js search "海鲜" 10
注意事项
- 遵守抖音平台规则 — 合理使用,避免频繁请求
- 请求间隔 — 建议间隔 2-3 秒
- 数据用途 — 仅供学习和研究
- 验证码 — 搜索页面会触发验证码,这是平台正常防护
使用前请确保遵守相关法律法规和平台规则!
Scan to join WeChat group