Skip to content
/ douyin Public
forked from erma0/douyin

抖音爬虫——采集账号主页、喜欢、收藏、音乐原声、搜索、关注、粉丝、合集、单作品。支持抖音号查询信息(精确粉丝数)。支持搭建API。

License

Notifications You must be signed in to change notification settings

zeemars/douyin

 
 

Repository files navigation

douyin

✨抖音爬虫

❤️开源不易,欢迎star⭐,若能帮助到您,可以请作者喝杯咖啡☕

📢声明

本仓库为学习playwright爬虫、命令行调用Aria2FastAPI/AMIS/Eel实现WEBUI的案例,仅用于测试和学习研究,禁止用于商业用途或任何非法用途。

任何用户直接或间接使用、传播本仓库内容时责任自负,本仓库的贡献者不对该等行为产生的任何后果负责。

如果相关方认为该项目的代码可能涉嫌侵犯其权利,请及时通知删除相关代码。


🏠项目地址

https://github.com/erma0/douyin

🍬功能

采集账号主页作品、喜欢作品、收藏作品、音乐原声作品、搜索作品、关注列表、粉丝列表、合集作品、单个作品

PS.

  • 采集账号主页作品需登录任一个账号
  • 采集账号的喜欢列表需账号打开权限或登录本人账号
  • 支持输入文件路径批量操作(同一类型,一行一个目标地址)
  • 支持增量采集账号主页作品
  • 支持监控主页最新作品
  • 支持搭建API接口

‍🚩待办

💡欢迎PR或建议

  • API - FastAPI
  • WEB UI - AMIS
  • GUI - Eel

🌳文件结构

douyin                           
├─ dist                          # 编译输出目录
  ├─ aria2c.exe                    # aria2下载器
  ├─ douyin.exe                    # 主程序
  └─ monitorStray.exe              # 监控新作品
├─ results                       # 网页返回数据样板
├─ browser.py                    # 浏览器启闭
├─ api.py                        # 搭建API接口
├─ exec.py                       # 命令行解析
├─ ico.ico                       # 图标logo
├─ login.py                      # 登录
├─ monitor.py                    # 监控-命令行
├─ monitorStray.py               # 监控-托盘图标
├─ README.md                     # 项目说明
├─ requirements.txt              # 依赖库
├─ spider.py                     # 爬虫核心代码
└─ test.py                       # 随手测试代码

🚀使用

📍测试环境:Win10/11 x64 + Python3.8/11

📭功能未全部测试,有问题请提交issue,也可加Q群738029092反馈(请提供测试链接以便复现问题)

🍔主程序

  1. Windows只需下载 releasesdist目录中的两个文件

    ⚠️ Linux或macOS请从官方地址下载对应的Aria2,然后运行源码或自行编译

    • douyin.exe
    • aria2c.exe
  2. 在程序所在目录打开命令行输入命令,或者Windows系统可以直接双击打开douyin.exe后根据提示输入目标地址

    • 🐔使用帮助
    -u, --urls TEXT                 账号/话题/音乐等URL或文件路径(文件内一行一个URL),可多次输入。采集本账号喜欢/
                                    收藏/关注/粉丝时可空
    -n, --num INTEGER               选填。最大采集数量,默认不限制
    -g, --grab                      选填。只采集信息,不下载作品
    -d, --download                  选填。不采集,直接下载之前采集过的配置文件,用于下载失败时重试
    -l, --login                     选填。指定是否登录,默认要登录,可避免一些风控,采集关注粉丝等信息时必须登录
    -m, --mstoken                   选填。指定是否在下载配置文件中设置UA及mstoken,默认不需要,出现下载0kb时尝试
                                    使用此参数
    -h, --headless                  选填。指定是否使用headless模式(不显示浏览器界面),默认为True,出现问题时使
                                    用此参数以便观察
    -t, --type [post|like|music|search|follow|fans|collection|video|favorite|id]
                                    选填。采集类型,支持[主页作品/喜欢/音乐/搜索/关注/粉丝/合集/单作品/收藏/抖音号
                                    查信息],默认采集post作品,能够自动识别搜索/音乐/合集/单作品以及本账号的喜欢/收
                                    藏。
    -b, --browser [chrome|msedge|chrome-beta|msedge-beta|msedge-dev]
                                    选填。浏览器类型,默认使用稳定版EDGE,可选[chrome/msedge]以及beta
                                    或dev版本,如需使用Firefox或WebKit请自行修改browser文件
    -p, --path TEXT                 选填。下载文件夹,默认为[下载]
    -pt, --pathtype [id|title]      选填。文件夹命名格式,默认为[type]_[id],可选[title](不需要主页作品增
                                    量采集时建议填title,即使用[标题/昵称/关键词]来命名)
    --help                          Show this message and exit.
    • 🏀使用例子(在程序所在目录打开命令行)
    # 采集本账号的喜欢
    ./douyin -t like
    
    # 采集本账号的收藏
    ./douyin -t favorite
    
    # 采集本账号的关注
    ./douyin -t follow
    
    # 采集本账号的粉丝
    ./douyin -t fans
    
    # 查询抖音号信息(可查精确粉丝数)
    ./douyin -t id -u xinhuashe
    
    # 采集目标地址(主页)的全部作品
    ./douyin -u https://*/ 
    ./douyin -t post -u https://*/ 
    
    # 采集目标地址(喜欢)的全部作品(需目标地址开放权限)
    ./douyin -u https://*/*?showTab=like
    ./douyin -t like -u https://*/ 
    
    # 采集目标地址(音乐)的全部作品
    ./douyin -u https://*/ 
    ./douyin -t music -u https://*/ 
    
    # 采集目标地址(搜索)的全部作品
    ./douyin -u 搜索关键字
    ./douyin -u https://*/ 
    ./douyin -t search -u https://*/ 
    
    # 采集目标地址(合集)的全部作品
    ./douyin -u https://*/ 
    ./douyin -t collection -u https://*/ 
    
    # 采集目标地址(关注)的全部信息
    ./douyin -t follow -u https://*/ 
    
    # 采集目标地址(粉丝)的全部信息
    ./douyin -t fans -u https://*/ 
    
    # 只采集目标信息,不下载
    ./douyin -g -u https://*/ 
    
    # 直接下载采集过的目标地址(用于上次下载出错时)
    ./douyin -d -u https://*/ 
    
    # 限制数量采集,只采集目标地址的5条结果
    ./douyin -n 5 -u https://*/ 
    
    # 采集多个目标地址
    ./douyin -u https://*1/ -u https://*2/ 
    
    # 采集文件[user.txt]中的多个目标地址
    ./douyin -u ./user.txt
    
    # 指定不登录采集目标地址
    ./douyin -l -u https://*/ 
    
    # 在下载配置文件中使用msToken参数(解决下载0kb问题)
    ./douyin -m -u https://*/ 
    
    # 指定使用chrome采集
    ./douyin -b chrome -u https://*/ 
    
    # 采集单个作品
    ./douyin -u id
    ./douyin -u https://*/ 

    💡手动使用aria2c下载

    aria2c -c --console-log-level warn -d ./下载目录 -i 生成的下载配置文件.txt

🍕监控新作品🆕

  1. 只需要下载monitorStray.exe文件
  2. 在同目录下新建一个url.txt文件,一行一个主页链接
  3. 双击运行monitorStray.exe即可,托盘图标可以控制启停

⚠️ Linux或macOS请直接运行monitor.py源码,或自行编译monitorStray.py

🔨编译

不能upx压缩,否则playwright无法启动

  1. 安装依赖

    pip install -U -r ./requirements.txt
  2. 安装pyinstaller

    pip install pyinstaller
  3. 设置环境变量(powershell)

    $env:PLAYWRIGHT_BROWSERS_PATH="0"
  4. 安装Edge或者Chrome

    playwright install msedge
    playwright install chromium
  5. 打包EXE,图标可自行更换

    • 编译主程序
    pyinstaller -F ./exec.py -i ./ico.ico -n douyin
    • 编译监控程序
    # 命令行程序
    pyinstaller -F ./monitor.py -i ./ico.ico 
    # 托盘程序
    pyinstaller -w -F ./monitorStray.py -i ./ico.ico --add-data "ico.ico;."

⚠️截至目前playwright最新版,Windows编译时需自行修改playwright源码才能隐藏命令行黑窗口,也就是在playwright/_impl/_transport.py文件的create_subprocess_exec 函数中加上下面这行内容,或者直接使用1.29.0版本的playwright

creationflags=134217728 if sys.platform == "win32" else 0,

☕请作者喝杯咖啡

支付宝微信收款

About

抖音爬虫——采集账号主页、喜欢、收藏、音乐原声、搜索、关注、粉丝、合集、单作品。支持抖音号查询信息(精确粉丝数)。支持搭建API。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 95.6%
  • JavaScript 4.4%