吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2361|回复: 10
收起左侧

[Python 原创] 根据搜索的关键词下载抖音排名及评论点赞收藏数据

  [复制链接]
在外DE孩子 发表于 2024-5-30 21:57

需要安装python可以运行该文件,运行文件可以获取抖音视频的【用户名,用户uid,用户ID,粉丝数量,发表时间,视频awemeid,视频url,视频描述,视频时长,点赞数量,收藏数量,评论数量,下载数量,分享数量】,如有问题欢迎留言

如果对你有帮助烦请给个助力,谢谢


[Python] 纯文本查看 复制代码
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# 导入自动化模块
import time
from DrissionPage import ChromiumPage
import datetime
import csv
import json
import pandas as pd
 
from urllib3.filepost import writer
 
# from openpyxl import writer
 
# 创建文件对象
f = open('../data.csv', mode='w', encoding='utf-8', newline='')
# 字典写入的方法
csv_writer = csv.DictWriter(f, fieldnames=['昵称', '点赞数', '时间', '评论'])
# 写入表头
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):
    timeArray = time.localtime(ctime)
    otherStyleTime = time.strftime("%Y.%m.%d", timeArray)
    return str(otherStyleTime)
 
def save_video_info(video_data):
    minutes = video_data['video']['duration'] // 1000 // 60
    seconds = video_data['video']['duration'] // 1000 % 60
    video_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', ''),
        '视频时长': "{:02d}:{:02d}".format(minutes, seconds),
        '点赞数量': 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_dict
 
data_list1 = []
for page in range(100):
    print(f'正在采集第{page+1}页的数据内容')
    # 下滑页面到底部
    driver.scroll.to_bottom()
    # 等待数据包加载
    resp = driver.listen.wait()
    # 直接获取数据包返回的响应数据
    json_data = resp.response.body
    # print(json_data)
    # print(json.dumps(json_data, ensure_ascii=False))
    time.sleep(2)
    print(json_data['has_more'])
    data_list2 = []
    for json_aweme_info in json_data['data']:
        data = save_video_info(json_aweme_info['aweme_info'])
        data_list2.append(data)
    if json_data['has_more'] == 0:
        break
        # f = open(f'{keyword}.csv', 'a', encoding='utf-8-sig', newline="")
        # writer = csv.DictWriter(f, header)
        # writer.writeheader()
    data_list1.extend(data_list2)
    print(data_list1)
 
# 向csv文件写入表头,评论数据csv文件
header = ['用户名',
          '用户uid',
          '用户ID',
          '粉丝数量',
          '发表时间',
          '视频awemeid',
          '视频url',
          '视频描述',
          '视频时长',
          '点赞数量',
          '收藏数量',
          '评论数量',
          '下载数量',
          '分享数量']
 
today_indx = datetime.date.today()
 
df = pd.DataFrame(data=data_list1, columns=header )
# print(df)
 
df.to_excel(f'{keyword}-{today_indx}.xlsx',index=False)

免费评分

参与人数 3吾爱币 +9 热心值 +3 收起 理由
xhsbd + 1 + 1 我很赞同!
lilihuakai + 1 + 1 我很赞同!
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 在外DE孩子 发表于 2024-5-30 21:58
可以直接下载在文件夹下
iflower 发表于 2024-5-31 21:20
感谢分享,容我装给python环境了先。
这给对python版本有没有要求?
雾雨 发表于 2024-6-9 15:30
点赞,大概知道某些工具是怎么统计视频的点赞增长轨迹的了
同舟 发表于 2024-6-9 18:42
的确DrissionPage很方便
kissgovip 发表于 2024-6-9 19:29
小白,有没有现成的工具,需要,谢谢各位大佬
蜗牛很牛 发表于 2024-6-12 14:40
楼主你好如何通过用户ID来获取该用户下所有用户视频点赞观看和分享信息
anthgm 发表于 2024-6-13 00:04
收藏了,以后用到
360安全卫士 发表于 2024-6-13 01:40

小白,有没有现成的工具,需要,谢谢各位大佬
手挽离人.Lon 发表于 2024-6-27 22:09
本帖最后由 手挽离人.Lon 于 2024-6-28 09:51 编辑

感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-5-25 22:00

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表