undoom-douyin-data-analysis


Nameundoom-douyin-data-analysis JSON
Version 0.1.3 PyPI version JSON
download
home_pageNone
Summary抖音数据分析 MCP 服务器 - 提供抖音视频和用户数据的采集、分析和导出功能
upload_time2025-08-08 06:45:40
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
keywords data-analysis douyin mcp tiktok web-scraping
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 抖音数据分析 MCP 服务器

[![PyPI version](https://badge.fury.io/py/undoom-douyin-data-analysis.svg)](https://badge.fury.io/py/undoom-douyin-data-analysis)
[![Python 3.13+](https://img.shields.io/badge/python-3.13+-blue.svg)](https://www.python.org/downloads/)

基于原始抖音数据分析工具开发的 MCP (Model Context Protocol) 服务器,提供抖音视频和用户数据的采集、分析和导出功能。

**🎉 现已发布到 PyPI,可直接安装使用!**

## 功能特性

### 数据采集
- **视频搜索**: 根据关键词搜索抖音视频,采集标题、作者、点赞数、评论数等信息
- **用户搜索**: 根据关键词搜索抖音用户,采集用户名、抖音号、粉丝数、获赞数等信息
- **自定义参数**: 支持设置滚动次数和延迟时间,控制采集规模和速度

### 数据分析
- **互动数据分析**: 分析视频的点赞、评论、分享等互动数据,提供统计报告
- **内容长度分析**: 分析视频标题长度分布,了解内容特征
- **关键词分析**: 使用中文分词技术分析高频词汇,发现热门话题

### 数据导出
- **多格式支持**: 支持 JSON、Excel、CSV 格式导出
- **分类导出**: 可选择导出视频数据、用户数据或全部数据
- **时间戳**: 自动添加时间戳,避免文件覆盖

## 安装和配置

### 方式一:从 PyPI 安装(推荐)

1. **直接安装**:
   ```bash
   pip install undoom-douyin-data-analysis
   ```

2. **配置 MCP 客户端**:
   在你的 MCP 客户端配置文件中添加以下配置:
   ```json
   {
     "mcpServers": {
       "undoom-douyin-data-analysis": {
         "command": "uvx",
         "args": [
           "--index-url",
           "https://pypi.tuna.tsinghua.edu.cn/simple",
           "--from",
           "undoom-douyin-data-analysis",
           "undoom-douyin-mcp"
         ]
       }
     }
   }
   ```

### 方式二:本地开发安装

1. **克隆仓库**:
   ```bash
   git clone <repository-url>
   cd undoom_Douyin_data_analysis
   ```

2. **安装依赖**:
   ```bash
   uv sync
   ```

3. **本地运行**:
   ```bash
   uv run undoom-douyin-mcp
   ```

### 环境要求
- Python 3.13+
- Chrome/Chromium 浏览器
- 网络连接(访问抖音)

## 可用工具

### 1. search_douyin_videos
搜索抖音视频数据

**参数**:
- `keyword` (必需): 搜索关键词
- `scroll_count` (可选): 滚动次数,默认为10
- `delay` (可选): 每次滚动的延迟时间(秒),默认为2.0

### 2. search_douyin_users
搜索抖音用户数据

### 3. analyze_interaction_data
分析视频互动数据(点赞、评论等)

### 4. analyze_content_length
分析视频标题长度分布

### 5. analyze_keywords
分析视频标题中的高频词汇

### 6. export_data
导出采集的数据

### 7. get_data_summary
获取当前采集数据的摘要信息

### 8. clear_data
清空当前采集的数据

## 可用资源

### 1. douyin://data/videos
当前采集的视频数据(JSON 格式)

### 2. douyin://data/users
当前采集的用户数据(JSON 格式)

### 3. douyin://analysis/summary
数据采集和分析摘要(文本格式)

## 使用示例

### 基本工作流程

1. **搜索视频数据**:
   使用 search_douyin_videos 工具搜索关键词

2. **分析数据**:
   使用 analyze_interaction_data 分析互动数据
   使用 analyze_keywords 分析高频词汇

3. **导出结果**:
   使用 export_data 导出为指定格式

## 项目信息

- **PyPI 包**: [undoom-douyin-data-analysis](https://pypi.org/project/undoom-douyin-data-analysis/)
- **版本**: 0.1.3
- **许可证**: MIT License
- **Python 版本**: 3.13+

## 注意事项

1. **网络环境**: 需要能够访问抖音网站
2. **浏览器依赖**: 使用 DrissionPage 需要 Chrome/Chromium 浏览器
3. **采集频率**: 建议设置适当的延迟时间,避免过于频繁的请求
4. **合规使用**: 请遵守抖音的使用条款和相关法律法规
5. **数据使用**: 采集的数据仅供学习和研究使用,请勿用于商业用途

## 技术架构

- **MCP 协议**: 基于 Model Context Protocol 实现
- **异步处理**: 使用 asyncio 进行异步操作
- **数据解析**: 使用 BeautifulSoup 解析 HTML
- **中文分词**: 使用 jieba 进行中文文本分析
- **数据处理**: 使用 pandas 进行数据操作和导出
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "undoom-douyin-data-analysis",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "data-analysis, douyin, mcp, tiktok, web-scraping",
    "author": null,
    "author_email": "undoom <kaikaihuhu666@163.com>",
    "download_url": "https://files.pythonhosted.org/packages/8c/7d/7dd2925b402a435e064b606a7ba1976e8fe95cffd65f3710a44988822a71/undoom_douyin_data_analysis-0.1.3.tar.gz",
    "platform": null,
    "description": "# \u6296\u97f3\u6570\u636e\u5206\u6790 MCP \u670d\u52a1\u5668\n\n[![PyPI version](https://badge.fury.io/py/undoom-douyin-data-analysis.svg)](https://badge.fury.io/py/undoom-douyin-data-analysis)\n[![Python 3.13+](https://img.shields.io/badge/python-3.13+-blue.svg)](https://www.python.org/downloads/)\n\n\u57fa\u4e8e\u539f\u59cb\u6296\u97f3\u6570\u636e\u5206\u6790\u5de5\u5177\u5f00\u53d1\u7684 MCP (Model Context Protocol) \u670d\u52a1\u5668\uff0c\u63d0\u4f9b\u6296\u97f3\u89c6\u9891\u548c\u7528\u6237\u6570\u636e\u7684\u91c7\u96c6\u3001\u5206\u6790\u548c\u5bfc\u51fa\u529f\u80fd\u3002\n\n**\ud83c\udf89 \u73b0\u5df2\u53d1\u5e03\u5230 PyPI\uff0c\u53ef\u76f4\u63a5\u5b89\u88c5\u4f7f\u7528\uff01**\n\n## \u529f\u80fd\u7279\u6027\n\n### \u6570\u636e\u91c7\u96c6\n- **\u89c6\u9891\u641c\u7d22**: \u6839\u636e\u5173\u952e\u8bcd\u641c\u7d22\u6296\u97f3\u89c6\u9891\uff0c\u91c7\u96c6\u6807\u9898\u3001\u4f5c\u8005\u3001\u70b9\u8d5e\u6570\u3001\u8bc4\u8bba\u6570\u7b49\u4fe1\u606f\n- **\u7528\u6237\u641c\u7d22**: \u6839\u636e\u5173\u952e\u8bcd\u641c\u7d22\u6296\u97f3\u7528\u6237\uff0c\u91c7\u96c6\u7528\u6237\u540d\u3001\u6296\u97f3\u53f7\u3001\u7c89\u4e1d\u6570\u3001\u83b7\u8d5e\u6570\u7b49\u4fe1\u606f\n- **\u81ea\u5b9a\u4e49\u53c2\u6570**: \u652f\u6301\u8bbe\u7f6e\u6eda\u52a8\u6b21\u6570\u548c\u5ef6\u8fdf\u65f6\u95f4\uff0c\u63a7\u5236\u91c7\u96c6\u89c4\u6a21\u548c\u901f\u5ea6\n\n### \u6570\u636e\u5206\u6790\n- **\u4e92\u52a8\u6570\u636e\u5206\u6790**: \u5206\u6790\u89c6\u9891\u7684\u70b9\u8d5e\u3001\u8bc4\u8bba\u3001\u5206\u4eab\u7b49\u4e92\u52a8\u6570\u636e\uff0c\u63d0\u4f9b\u7edf\u8ba1\u62a5\u544a\n- **\u5185\u5bb9\u957f\u5ea6\u5206\u6790**: \u5206\u6790\u89c6\u9891\u6807\u9898\u957f\u5ea6\u5206\u5e03\uff0c\u4e86\u89e3\u5185\u5bb9\u7279\u5f81\n- **\u5173\u952e\u8bcd\u5206\u6790**: \u4f7f\u7528\u4e2d\u6587\u5206\u8bcd\u6280\u672f\u5206\u6790\u9ad8\u9891\u8bcd\u6c47\uff0c\u53d1\u73b0\u70ed\u95e8\u8bdd\u9898\n\n### \u6570\u636e\u5bfc\u51fa\n- **\u591a\u683c\u5f0f\u652f\u6301**: \u652f\u6301 JSON\u3001Excel\u3001CSV \u683c\u5f0f\u5bfc\u51fa\n- **\u5206\u7c7b\u5bfc\u51fa**: \u53ef\u9009\u62e9\u5bfc\u51fa\u89c6\u9891\u6570\u636e\u3001\u7528\u6237\u6570\u636e\u6216\u5168\u90e8\u6570\u636e\n- **\u65f6\u95f4\u6233**: \u81ea\u52a8\u6dfb\u52a0\u65f6\u95f4\u6233\uff0c\u907f\u514d\u6587\u4ef6\u8986\u76d6\n\n## \u5b89\u88c5\u548c\u914d\u7f6e\n\n### \u65b9\u5f0f\u4e00\uff1a\u4ece PyPI \u5b89\u88c5\uff08\u63a8\u8350\uff09\n\n1. **\u76f4\u63a5\u5b89\u88c5**:\n   ```bash\n   pip install undoom-douyin-data-analysis\n   ```\n\n2. **\u914d\u7f6e MCP \u5ba2\u6237\u7aef**:\n   \u5728\u4f60\u7684 MCP \u5ba2\u6237\u7aef\u914d\u7f6e\u6587\u4ef6\u4e2d\u6dfb\u52a0\u4ee5\u4e0b\u914d\u7f6e\uff1a\n   ```json\n   {\n     \"mcpServers\": {\n       \"undoom-douyin-data-analysis\": {\n         \"command\": \"uvx\",\n         \"args\": [\n           \"--index-url\",\n           \"https://pypi.tuna.tsinghua.edu.cn/simple\",\n           \"--from\",\n           \"undoom-douyin-data-analysis\",\n           \"undoom-douyin-mcp\"\n         ]\n       }\n     }\n   }\n   ```\n\n### \u65b9\u5f0f\u4e8c\uff1a\u672c\u5730\u5f00\u53d1\u5b89\u88c5\n\n1. **\u514b\u9686\u4ed3\u5e93**:\n   ```bash\n   git clone <repository-url>\n   cd undoom_Douyin_data_analysis\n   ```\n\n2. **\u5b89\u88c5\u4f9d\u8d56**:\n   ```bash\n   uv sync\n   ```\n\n3. **\u672c\u5730\u8fd0\u884c**:\n   ```bash\n   uv run undoom-douyin-mcp\n   ```\n\n### \u73af\u5883\u8981\u6c42\n- Python 3.13+\n- Chrome/Chromium \u6d4f\u89c8\u5668\n- \u7f51\u7edc\u8fde\u63a5\uff08\u8bbf\u95ee\u6296\u97f3\uff09\n\n## \u53ef\u7528\u5de5\u5177\n\n### 1. search_douyin_videos\n\u641c\u7d22\u6296\u97f3\u89c6\u9891\u6570\u636e\n\n**\u53c2\u6570**:\n- `keyword` (\u5fc5\u9700): \u641c\u7d22\u5173\u952e\u8bcd\n- `scroll_count` (\u53ef\u9009): \u6eda\u52a8\u6b21\u6570\uff0c\u9ed8\u8ba4\u4e3a10\n- `delay` (\u53ef\u9009): \u6bcf\u6b21\u6eda\u52a8\u7684\u5ef6\u8fdf\u65f6\u95f4\uff08\u79d2\uff09\uff0c\u9ed8\u8ba4\u4e3a2.0\n\n### 2. search_douyin_users\n\u641c\u7d22\u6296\u97f3\u7528\u6237\u6570\u636e\n\n### 3. analyze_interaction_data\n\u5206\u6790\u89c6\u9891\u4e92\u52a8\u6570\u636e\uff08\u70b9\u8d5e\u3001\u8bc4\u8bba\u7b49\uff09\n\n### 4. analyze_content_length\n\u5206\u6790\u89c6\u9891\u6807\u9898\u957f\u5ea6\u5206\u5e03\n\n### 5. analyze_keywords\n\u5206\u6790\u89c6\u9891\u6807\u9898\u4e2d\u7684\u9ad8\u9891\u8bcd\u6c47\n\n### 6. export_data\n\u5bfc\u51fa\u91c7\u96c6\u7684\u6570\u636e\n\n### 7. get_data_summary\n\u83b7\u53d6\u5f53\u524d\u91c7\u96c6\u6570\u636e\u7684\u6458\u8981\u4fe1\u606f\n\n### 8. clear_data\n\u6e05\u7a7a\u5f53\u524d\u91c7\u96c6\u7684\u6570\u636e\n\n## \u53ef\u7528\u8d44\u6e90\n\n### 1. douyin://data/videos\n\u5f53\u524d\u91c7\u96c6\u7684\u89c6\u9891\u6570\u636e\uff08JSON \u683c\u5f0f\uff09\n\n### 2. douyin://data/users\n\u5f53\u524d\u91c7\u96c6\u7684\u7528\u6237\u6570\u636e\uff08JSON \u683c\u5f0f\uff09\n\n### 3. douyin://analysis/summary\n\u6570\u636e\u91c7\u96c6\u548c\u5206\u6790\u6458\u8981\uff08\u6587\u672c\u683c\u5f0f\uff09\n\n## \u4f7f\u7528\u793a\u4f8b\n\n### \u57fa\u672c\u5de5\u4f5c\u6d41\u7a0b\n\n1. **\u641c\u7d22\u89c6\u9891\u6570\u636e**:\n   \u4f7f\u7528 search_douyin_videos \u5de5\u5177\u641c\u7d22\u5173\u952e\u8bcd\n\n2. **\u5206\u6790\u6570\u636e**:\n   \u4f7f\u7528 analyze_interaction_data \u5206\u6790\u4e92\u52a8\u6570\u636e\n   \u4f7f\u7528 analyze_keywords \u5206\u6790\u9ad8\u9891\u8bcd\u6c47\n\n3. **\u5bfc\u51fa\u7ed3\u679c**:\n   \u4f7f\u7528 export_data \u5bfc\u51fa\u4e3a\u6307\u5b9a\u683c\u5f0f\n\n## \u9879\u76ee\u4fe1\u606f\n\n- **PyPI \u5305**: [undoom-douyin-data-analysis](https://pypi.org/project/undoom-douyin-data-analysis/)\n- **\u7248\u672c**: 0.1.3\n- **\u8bb8\u53ef\u8bc1**: MIT License\n- **Python \u7248\u672c**: 3.13+\n\n## \u6ce8\u610f\u4e8b\u9879\n\n1. **\u7f51\u7edc\u73af\u5883**: \u9700\u8981\u80fd\u591f\u8bbf\u95ee\u6296\u97f3\u7f51\u7ad9\n2. **\u6d4f\u89c8\u5668\u4f9d\u8d56**: \u4f7f\u7528 DrissionPage \u9700\u8981 Chrome/Chromium \u6d4f\u89c8\u5668\n3. **\u91c7\u96c6\u9891\u7387**: \u5efa\u8bae\u8bbe\u7f6e\u9002\u5f53\u7684\u5ef6\u8fdf\u65f6\u95f4\uff0c\u907f\u514d\u8fc7\u4e8e\u9891\u7e41\u7684\u8bf7\u6c42\n4. **\u5408\u89c4\u4f7f\u7528**: \u8bf7\u9075\u5b88\u6296\u97f3\u7684\u4f7f\u7528\u6761\u6b3e\u548c\u76f8\u5173\u6cd5\u5f8b\u6cd5\u89c4\n5. **\u6570\u636e\u4f7f\u7528**: \u91c7\u96c6\u7684\u6570\u636e\u4ec5\u4f9b\u5b66\u4e60\u548c\u7814\u7a76\u4f7f\u7528\uff0c\u8bf7\u52ff\u7528\u4e8e\u5546\u4e1a\u7528\u9014\n\n## \u6280\u672f\u67b6\u6784\n\n- **MCP \u534f\u8bae**: \u57fa\u4e8e Model Context Protocol \u5b9e\u73b0\n- **\u5f02\u6b65\u5904\u7406**: \u4f7f\u7528 asyncio \u8fdb\u884c\u5f02\u6b65\u64cd\u4f5c\n- **\u6570\u636e\u89e3\u6790**: \u4f7f\u7528 BeautifulSoup \u89e3\u6790 HTML\n- **\u4e2d\u6587\u5206\u8bcd**: \u4f7f\u7528 jieba \u8fdb\u884c\u4e2d\u6587\u6587\u672c\u5206\u6790\n- **\u6570\u636e\u5904\u7406**: \u4f7f\u7528 pandas \u8fdb\u884c\u6570\u636e\u64cd\u4f5c\u548c\u5bfc\u51fa",
    "bugtrack_url": null,
    "license": null,
    "summary": "\u6296\u97f3\u6570\u636e\u5206\u6790 MCP \u670d\u52a1\u5668 - \u63d0\u4f9b\u6296\u97f3\u89c6\u9891\u548c\u7528\u6237\u6570\u636e\u7684\u91c7\u96c6\u3001\u5206\u6790\u548c\u5bfc\u51fa\u529f\u80fd",
    "version": "0.1.3",
    "project_urls": {
        "Homepage": "https://github.com/kk520879/undoom-douyin-data-analysis",
        "Issues": "https://github.com/kk520879/undoom-douyin-data-analysis/issues",
        "Repository": "https://github.com/kk520879/undoom-douyin-data-analysis"
    },
    "split_keywords": [
        "data-analysis",
        " douyin",
        " mcp",
        " tiktok",
        " web-scraping"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "efa37ea34b65089895a75c984ef79d57fec87bcf2f7accdfd4108fecebb548cf",
                "md5": "010e1bbaf886cb1d17b466b95d4c39d4",
                "sha256": "8161b36fb5aeeae74c09e15be6b39c4bfd6a3e4dc3d59cf29dbdb5fbab60fb2a"
            },
            "downloads": -1,
            "filename": "undoom_douyin_data_analysis-0.1.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "010e1bbaf886cb1d17b466b95d4c39d4",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 13530,
            "upload_time": "2025-08-08T06:45:38",
            "upload_time_iso_8601": "2025-08-08T06:45:38.691255Z",
            "url": "https://files.pythonhosted.org/packages/ef/a3/7ea34b65089895a75c984ef79d57fec87bcf2f7accdfd4108fecebb548cf/undoom_douyin_data_analysis-0.1.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8c7d7dd2925b402a435e064b606a7ba1976e8fe95cffd65f3710a44988822a71",
                "md5": "58ecca88ebd72309bd8777be0d54b2da",
                "sha256": "20c392c8653a392ef9ce00d1cbb44df9cccb094e4e7a9f8412991786e6388709"
            },
            "downloads": -1,
            "filename": "undoom_douyin_data_analysis-0.1.3.tar.gz",
            "has_sig": false,
            "md5_digest": "58ecca88ebd72309bd8777be0d54b2da",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 76818,
            "upload_time": "2025-08-08T06:45:40",
            "upload_time_iso_8601": "2025-08-08T06:45:40.941637Z",
            "url": "https://files.pythonhosted.org/packages/8c/7d/7dd2925b402a435e064b606a7ba1976e8fe95cffd65f3710a44988822a71/undoom_douyin_data_analysis-0.1.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-08 06:45:40",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "kk520879",
    "github_project": "undoom-douyin-data-analysis",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "undoom-douyin-data-analysis"
}
        
Elapsed time: 1.50367s