吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

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

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

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

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

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


[Python] 纯文本查看 复制代码
# 导入自动化模块
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, 2024-11-24 12:41

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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