当前位置: 首页 > news >正文

基于关键词自动采集抖音视频排名及互动数据(点赞、评论、收藏)

在当今的社交媒体时代,抖音作为一个热门短视频平台,吸引了大量用户和内容创作者。对于研究和分析抖音上的热门视频及其互动数据(如点赞、评论、收藏等),自动化的数据采集工具显得尤为重要。本项目旨在开发一个基于关键词的自动化脚本,能够高效地采集抖音视频的排名及其互动数据。

通过输入关键词,脚本会自动访问抖音搜索页面,获取相关视频的详细信息,包括用户名、用户ID、粉丝数量、视频描述、视频时长、点赞数量、评论数量、收藏数量等。采集到的数据将以CSV和Excel格式保存,方便后续的数据分析和处理。

该工具不仅适用于市场研究、内容创作分析,还可以帮助企业和个人更好地了解抖音平台上的用户行为和内容趋势。通过自动化的数据采集,大大提高了工作效率,减少了人工操作的繁琐和误差。

一、运行结果

在这里插入图片描述

二、程序代码

import time
import datetime
import csv
import pandas as pd
from DrissionPage import ChromiumPage# 创建文件对象并写入表头
with open('../data.csv', mode='w', encoding='utf-8', newline='') as f:csv_writer = csv.DictWriter(f, fieldnames=['用户名', '用户uid', '用户ID', '粉丝数量', '发表时间', '视频awemeid','视频url', '视频描述', '视频时长', '点赞数量', '收藏数量', '评论数量','下载数量', '分享数量'])csv_writer.writeheader()# 打开浏览器并监听数据包
driver = ChromiumPage()
driver.listen.start('www.douyin.com/aweme/v1/web/search/item', method='GET')# 获取关键词并访问网址
keyword = input('请输入关键词:')
url = f'https://www.douyin.com/search/{keyword}?type=video'
print(url)
driver.get(url)def get_time(ctime):return time.strftime("%Y.%m.%d", time.localtime(ctime))def save_video_info(video_data):minutes = video_data['video']['duration'] // 1000 // 60seconds = video_data['video']['duration'] // 1000 % 60video_dict = {'用户名': video_data['author']['nickname'].strip(),'用户uid': 'a' + str(video_data['author']['uid']),'用户ID': video_data['author']['sec_uid'],'粉丝数量': video_data['author']['follower_count'],'发表时间': get_time(video_data['create_time']),'视频awemeid': 'a' + video_data['aweme_id'],'视频url': 'https://www.douyin.com/video/' + str(video_data['aweme_id']),'视频描述': video_data['desc'].strip().replace('\n', ''),'视频时长': f"{minutes:02d}:{seconds:02d}",'点赞数量': video_data['statistics']['digg_count'],'收藏数量': video_data['statistics']['collect_count'],'评论数量': video_data['statistics']['comment_count'],'下载数量': video_data['statistics']['download_count'],'分享数量': video_data['statistics']['share_count'],}print(f"用户名: {video_dict['用户名']}\n",f"用户uid: {video_dict['用户uid']}\n",f"用户ID: {video_dict['用户ID']}\n",f"粉丝数量: {video_dict['粉丝数量']}\n",f"发表时间: {video_dict['发表时间']}\n",f"视频awemeid: {video_dict['视频awemeid']}\n",f"视频url: {video_dict['视频url']}\n",f"视频描述: {video_dict['视频描述']}\n",f"视频时长: {video_dict['视频时长']}\n",f"点赞数量: {video_dict['点赞数量']}\n",f"收藏数量: {video_dict['收藏数量']}\n",f"评论数量: {video_dict['评论数量']}\n",f"下载数量: {video_dict['下载数量']}\n",f"分享数量: {video_dict['分享数量']}\n")return video_dictdata_list = []
for page in range(10):print(f'正在采集第{page + 1}页的数据内容')driver.scroll.to_bottom()resp = driver.listen.wait()json_data = resp.response.bodytime.sleep(2)if not json_data['has_more']:breakfor json_aweme_info in json_data['data']:data = save_video_info(json_aweme_info['aweme_info'])data_list.append(data)header = ['用户名', '用户uid', '用户ID', '粉丝数量', '发表时间', '视频awemeid', '视频url', '视频描述', '视频时长','点赞数量', '收藏数量', '评论数量', '下载数量', '分享数量']
today_indx = datetime.date.today()df = pd.DataFrame(data=data_list, columns=header)
df.to_excel(f'{keyword}-{today_indx}.xlsx', index=False)
http://www.lryc.cn/news/368182.html

相关文章:

  • selenium中switch_to.window切换窗口的用法
  • 【nerf】nvidia-smi
  • 测试工具fio
  • 详解 Flink 的状态管理
  • 手机怎么压缩视频?归纳了三种快速压缩方案
  • 【实战】kafka3.X kraft模式集群搭建
  • 华为防火墙配置 SSL VPN
  • Redis的删除策略与内存淘汰
  • 《一心体系至善算法》“人文+AI”成果
  • C#面:阐述对DDD的理解
  • 音视频开发19 FFmpeg 视频解码- 将 h264 转化成 yuv
  • Mysql 常用命令 详细大全【分步详解】
  • 基于百度接口的实时流式语音识别系统
  • AIGC作答《2024年高考作文|新课标I卷》能拿多少分?
  • WHAT - 发布订阅
  • React@16.x(23)useEffect
  • 算法竞赛一句话解题经典问题分析 ©ntsc 2024
  • 【TensorFlow深度学习】强化学习中的贝尔曼方程及其应用
  • 牛客 NC129 阶乘末尾0的数量【简单 基础数学 Java/Go/PHP/C++】
  • 【Spring Boot】异常处理
  • Laravel学习-自定义辅助函数
  • LLVM Cpu0 新后端6
  • GAT1399协议分析(9)--图像上传
  • Spring ApplicationContext的getBean方法
  • 自然语言处理(NLP)—— 自动摘要
  • Spring RestClient报错:400 Bad Request : [no body]
  • 【数据结构】 -- 堆 (堆排序)(TOP-K问题)
  • C#面:XML与 HTML 的主要区别是什么
  • java并发-如何保证线程按照顺序执行?
  • PyCharm中 Fitten Code插件的使用说明一