> 一键抓取抖音热门视频 / 电商带货 / 热搜榜 TOP10,输出结构化报告 + CSV。
| 条件 | 要求 |
|---|---|
| ------ | ------ |
| Python | 3.10+(推荐 3.13) |
| Chrome 浏览器 | 已安装(webdriver-manager 自动匹配驱动) |
| 虚拟环境 | 项目目录下 .venv/ |
python -m venv .venv
.venv/Scripts/pip install selenium requests beautifulsoup4 pandas lxml webdriver-manager
.venv/Scripts/python.exe douyin_scraper.py
reports/
├── douyin_report_20260526_111825.txt # 结构化报告(四段式)
├── douyin_hot_videos_20260526_111825.csv # 热门视频原始数据
└── douyin_ecommerce_20260526_111825.csv # 电商带货原始数据
.txt 结构(四段式)============================================================
抖音热门视频 TOP 10
============================================================
🏆 Top 1 - {视频标题}
达人:{作者名}
热度:{点赞数格式化}
详情链接:https://www.douyin.com/video/{ID}
🥈 Top 2 - ...
...(共10条)
============================================================
抖音热榜 TOP 10
============================================================
🏆 Top 1 - {热搜词}
热度:{万级热度值}
详情链接:https://www.douyin.com/search/{URL编码词}
...(共10条)
============================================================
电商带货热榜视频 TOP 10
============================================================
🏆 Top 1 - {商品标题(含话题标签+挂车商品信息)}
达人:{作者名}
热度:{点赞数格式化}
详情链接:https://www.douyin.com/video/{ID}
...(共10条)
============================================================
趋势洞察
============================================================
赛道分布:萌宠(1条)、搞笑(1条)、美妆时尚(1条)...
热搜特征:财经商业 / 社会民生 / ...
超级爆款:{标题} 等 N 条视频突破30万点赞
电商热品:食品饮料(3条)、美妆护肤(2条)、家居日用(1条)...
带货王:{标题}(@达人) 以 X万 点赞领跑
今日节点:体育赛事、教育考试、天气气候... 相关内容占据主导
黑马观察:{冷门内容}(@达人)等冷门赛道内容异军突起
数据更新时间:YYYY年MM月DD日 HH:MM
热门视频 CSV (douyin_hot_videos_*.csv):
| 字段 | 说明 | 示例 |
|---|---|---|
| ------ | ------ | ------ |
| 排名 | 1-10 | 1 |
| 视频标题 | 含话题标签 | 奶牛猫是超级英雄! #黑猫警长 #萌宠 |
| 达人 | 清理后昵称 | 我是小猫 |
| 点赞数 | 格式化(X.X万) | 38.6万 |
| 转发数 | 蝉妈妈无此数据,为空 | |
| 评论数 | 整数值 | 1234 |
| 播放量 | 格式化 | 500.2万 |
| 赛道分类 | 自动标注(18类) | 萌宠 |
| 视频链接 | douyin.com 原地址 | https://www.douyin.com/video/7643539738272592113 |
| 一句话点评 | AI增强时填充 |
电商带货 CSV (douyin_ecommerce_*.csv):字段同上,「赛道分类」替换为电商品类。
<workspace>/
├── douyin_scraper.py # 主脚本(~1100行)
├── .venv/ # Python虚拟环境 + 依赖
└── reports/ # 输出目录(自动创建)
douyin_scraper.py
│
├── 配置区(第38-76行)
│ ├── OUTPUT_DIR / TODAY / NOW_TIME # 输出路径和时间戳
│ ├── TARGET_URLS # 热门视频榜 URL 字典
│ ├── ECOMMERCE_URLS # 电商带货榜 URL 字典
│ ├── HEADERS # 请求头 UA
│ └── PAGE_LOAD_TIMEOUT / ELEMENT_WAIT_TIMEOUT
│
├── 浏览器初始化(第83-117行)
│ └── create_driver() → headless Chrome + stealth JS 注入
│
├── 页面抓取(第125-179行)
│ ├── fetch_page_selenium() → Selenium 渲染 + 3次滚动加载
│ └── fetch_page_requests() → 纯 requests 备用方案
│
├── 数据解析(第187-429行)★核心
│ ├── parse_chanmama() → 三策略降级入口
│ │ ├── 策略1: 表格 <table> 解析(主力)
│ │ ├── 策略2: CSS卡片列表匹配
│ │ └── 策略3: 正则兜底全文提取
│ │
│ ├── _extract_douyin_share_links() → 提取 iesdouyin 分享链接
│ ├── convert_ies_to_douyin() → 转换为 douyin.com 地址
│ ├── clean_author_name() → 达人名清理(去粉丝数/时间戳)
│ ├── clean_title() → 标题清理
│ ├── _extract_from_cells() → 表格行→字典
│ └── _extract_from_card() / _fallback_extract()
│
├── 数据清洗工具(第437-485行)
│ ├── _parse_number() → "38.6万" → 386000
│ ├── _safe_int()
│ └── _deduplicate_and_rank() → 去重 + 排序 + 补充排名
│
├── 分类引擎(第488-580行)
│ ├── categorize_video() → 视频18赛道自动分类
│ └── _categorize_ecommerce() → 商品7大品类自动分类
│
├── 输出模块(第520-565行 / 887-977行)
│ ├── save_to_csv() → UTF-8-BOM CSV 写入
│ ├── save_report() → 四段式文本报告生成
│ └── _format_num() → 数字格式化为可读字符串
│
├── 热搜抓取(第573-770行)
│ ├── fetch_hot_search_top10() → 调度入口
│ ├── _fetch_baidu_realtime() → 百度JSON提取(主源)★
│ ├── _fetch_tophub_douyin() → 备用(已弃用)
│ └── _fetch_hot_selenium() → 备用(已弃用)
│
├── 趋势洞察(第778-893行)★AI分析
│ ├── generate_trend_insights() → 5维度分析入口
│ │ ├── 维度1: 赛道分布统计
│ │ ├── 维度2: 热搜话题分类(_classify_topics)
│ │ ├── 维度3: 超级爆款识别(>30万点赞)
│ │ ├── 维度4: 电商热点分析(新增)
│ │ ├── 维度5: 今日节点事件关键词
│ │ └── 维度6: 黑马观察(冷门赛道高赞)
│ └── _classify_topics()
│
└── 主流程 main()(第972-1053行)
├── Step 1: 初始化浏览器
├── Step 2: 抓取热门视频(TARGET_URLS)
├── Step 3: 抓取电商带货(ECOMMERCE_URLS) ★新增
├── Step 4: 抓取热搜榜(百度实时热搜)
├── Step 5: 写入热门视频CSV
├── Step 5b: 写入电商带货CSV ★新增
├── Step 6: 生成四段式报告
└── Step 7: 打印预览 + 关闭浏览器
| 数据源 | URL 用途 | 解析方式 | 数据量 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| -------- | ---------- | ---------- | -------- | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 蝉妈妈·热门视频 | https://chanmama.com/awemeRank/hotAweme | 表格 |