python分析实战(4)--获取某dou热榜

news2024/11/16 21:53:31

1. 分析需求

打开某音热搜,选择需要获取的热榜如图
![在这里插入图片描述](https://img-blog.csdnimg.cn/72107e0180ba43b0b84ef7c409bafd71.png

查找包含热搜内容的接口返回如图
在这里插入图片描述
将url地址保存
在这里插入图片描述

2. 开发

定义请求头

headers = {
    'Cookie': '自己的cookie',
    'Accept': 'application/json, text/plain, */*',
    'Accept-Encoding': 'gzip, deflate',
    'Host': 'www.douyin.com',
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Safari/605.1.15',
    'Accept-Language': 'zh-CN,zh-Hans;q=0.9',
    'Referer': 'https://www.douyin.com/hot',
    'Connection': 'keep-alive'
}

配置上面获取到的url
定义抓取元素数组

    position_list = []  # 热搜排名
    title_list = []  # 热搜标题
    time_list = []  # 热搜时间
    hot_value_list = []  # 热度值
    hot_url = []  # 热搜链接

开始请求

    r = requests.get(url, headers=headers)
    # 用json接收请求数据
    json_data = r.json()

解析响应

    data_list = json_data['data']['word_list']

循环赋值

    for data in data_list:
        title = data.get('word', '')  # 热搜标题
        title_list.append(title)
        position = data.get('position', 0)  # 热搜排名
        position_list.append(position)
        hot_value = data.get('hot_value', '')  # 热搜值
        hot_value_list.append(hot_value)
        event_time = data.get('event_time', '')  # 热搜时间戳
        if event_time:
            timestamp = float(event_time)
            # 时间戳转时间
            dt_object = datetime.datetime.fromtimestamp(timestamp)
            formatted_date = dt_object.strftime("%Y-%m-%d %H:%M:%S")
            time_list.append(formatted_date)
        else:
            time_list.append('')
        hot_url.append('https://www.douyin.com/hot/' + data.get('sentence_id', ''))  # 热榜链接

写入csv

    df = pd.DataFrame(
        {
            '热搜排名': position_list,
            '热搜标题': title_list,
            '热搜时间': time_list,
            '热度值': hot_value_list,
            '热搜链接': hot_url,
        }
    )
    # 保存结果到csv文件
    df.to_csv('抖音热搜.csv', index=False, encoding='utf_8_sig')

3. 效果验证

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/933659.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

容器管理工具-Portainer

文章目录 简介安装登陆Portainer初始化设置添加其它服务器到Portainer平台Portainer搭建Redis 简介 Docker Portainer是一个开源的容器管理工具,用于简化Docker容器的部署、监控和管理任务。它提供了一个直观易用的图形化用户界面,可以通过浏览器访问&a…

SpringBoot日志持久化以及使用lombok输出日志

上一篇文章介绍了日志级别和自定义输出日志 链接https://blog.csdn.net/qq_45875349/article/details/132510387?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22132510387%22%2C%22source%22%3A%22qq_45875349%22%7D那么想要将控…

react解决死循环方法?

使用useeffect(副作用)方法结束这个操作 1、导入useeffect、useState 2、把下方代码写入:里面填写的是你要终止某个东西的代码 注意:不可不写,也可以写依赖或不写

springboot整合第三方技术邮件系统

springboot整合第三方技术邮件系统,发邮件是java程序的基本操作,springboot整合javamail其实就是简化开发。不熟悉邮件的小伙伴可以先学习完javamail的基础操作,再来看这一部分内容才能感触到springboot整合javamail究竟简化了哪些操作。简化…

使用锐捷RG-EG210G-E路由器实现两个IP地址冲突的局域网互通

需求背景: 之前写过一篇博文使用路由器实现三个不同网段局域网内的计算机相互访问,链接如下 https://blog.csdn.net/agang1986/article/details/131862160 当前的需求又发生了变更,有两个独立的局域网,内部的计算机个数和配置的IP…

新型数据中心网络安全体系研究

当前,新型基础设施建设已上升至国家战略,被赋予了数字化、智能化的新意义。作为算力基础设施,新型数据中心是信息基础设施中的重要内容,是数字政府、数字经济的“信息底座”,是未来引领数字经济发展的关键载体和支柱&a…

每日一博 - 闲聊云原生和容器编排

文章目录 概念1. 云原生(Cloud Native):2. 容器编排(Container Orchestration): 小结 概念 云原生和容器编排是两个不同的概念,但它们之间有着密切的联系。下面将分别介绍这两个概念&#xff0…

Docker搭建私有仓库并迁移

目录 方案 A、B机器安装docker 设置阿里云镜像源 安装 Docker-CE并设置为开机自动启动 A机器准备数据 拷贝数据 B机器运行redis、mysql镜像 重启docker服务 方案 准备两台机器:A机器(可以连接外网),B机器(内网机器…

Maven-Java代码格式化插件spring-javaformat

TOC 官方文档:点击进入 前言 项目研发过程中,随着团队人员的增加变更环境配置的不同,有些同学甚至没有格式化代码的习惯,导致编码风格不统一杂乱无章,为解决这一问题引入Spring提供的格式化代码插件。插件支持多种方…

Python|爬虫和测试|selenium框架模拟登录示例(一)

前言: 上一篇文章Python|爬虫和测试|selenium框架的安装和初步使用(一)_晚风_END的博客-CSDN博客 大概介绍了一下selenium的安装和初步使用,主要是打开某个网站的主页,基本是最基础的东西,那么,…

C++ 网络编程项目fastDFS分布式文件系统(八)--

目录 1 程序中的相关协议 1 程序中的相关协议 1. 注册 客户端 // url http: //127.0.0.1:80/reg // post 数据格式 { userName:xxxx, nickName:xxx, firstPwd:xxx, phone:xxx, email:xxx } 服务器 成功 {"code":"002"} 该用户已存在 {&q…

Mysql45讲学习笔记

前言:这篇文章主要总结事务,锁、索引的一些知识点,然后分享一下自己学习小心得,我会从点到线在到面展开说说,对于学习任何知识,我们都应该藐其全貌,不要一开始就选入细节 基础 一、基础架构&a…

4.Redis数据类型的编码方式

数据结构和内部编码 type 命令实际返回的就是当前键的数据结构类型,它们分别是:string(字符串)、list(列表)、hash(哈希)、set(集合)、zset(有序…

kali安装Hashpump(简单无比)

安装 OpenSSL 开发库: sudo apt-get update sudo apt-get install libssl-dev克隆 Hashpump 仓库 git clone https://github.com/bwall/HashPump.git进入 HashPump 目录 cd HashPump编译并安装 Hashpump make sudo make install使用 Hashpump 工具: …

OLED透明屏拼接:创造更大尺寸的显示区域,提供更广阔的视觉体验

OLED透明屏拼接是一项创新技术,可以实现更大尺寸的显示区域和更加连续和流畅的画面效果,为广告、商场、零售、智能家居等领域提供更多的创意和可能。 下面将详细介绍OLED透明屏拼接的原理、优势、应用领域,希望看后对您了解OLED透明屏有所帮…

WPF怎么实现文件拖放功能winform怎么实现拖拽功能

WPF怎么实现文件拖放功能winform怎么实现文件拖拽功能,在管理员模式下wpf winform怎么实现文件的拖拽功能 WPF实现文件拖放功能,正常情况并没有什么问题,但是如果你的程序使用管理员身份启动,你就会发现文件拖放功能就会失效。同…

捕鱼船识别检测算法

捕鱼船识别检测预警系统通过yolov5python网络模型图像识别分析技术,捕鱼船识别检测预警算法利用河道两岸的摄像头实时监测水域中的捕鱼船活动,一旦系统识别到违规捕捞行为,立即发出预警信号,立即发出预警信号,确保及时…

Abaqus软件安装包分享(附安装教程)

目录 一、软件简介 二、软件下载 一、软件简介 Abaqus是一款专业的有限元分析软件,广泛应用于工程领域,特别是机械、汽车、航空航天、材料科学等领域。它具有强大的有限元分析功能,可以模拟各种复杂的物理和力学问题,为工程师提…

openCV实战-系列教程8:直方图与傅里叶变换(直方图定义/均衡化原理/均衡化效果/傅里叶概述/频域变换结果/低通与高通滤波)、原理解析、源码解读

打印图像直接用这个函数: import cv2 #opencv读取的格式是BGR import numpy as np import matplotlib.pyplot as plt#Matplotlib是RGB %matplotlib inline def cv_show(img,name):cv2.imshow(name,img)cv2.waitKey()cv2.destroyAllWindows()1、直方图 1.1 基本定义…