首页 > 编程语言 >【爬虫案例】用Python爬取抖音热榜数据!

【爬虫案例】用Python爬取抖音热榜数据!

时间:2023-07-23 09:04:28浏览次数:37  
标签:音热榜 title Python list 爬虫 取抖 热榜 csv 数据

目录

一、爬取目标

您好,我是@马哥python说,一名10年程序猿。
本次爬取的目标是:抖音热榜
抖音热榜页面

共爬取到50条数据,对应TOP50热榜。含5个字段,分别是:

热榜排名,热榜标题,热榜时间,热度值,热榜标签。

用Chrome浏览器,右键打开开发者模式,选择:网络->XHR这个选项,重新刷新一下页面。
操作过程,如下图所示:
开发者模式
成功找到了50条热榜数据。

下面,开始编码爬虫代码。

二、编写爬虫代码

首先,导入需要用到的库:

import requests
import pandas as pd
import time

定义一个请求地址,即上图中的目标链接地址:

# 接口地址
url = 'https://www.douyin.com/aweme/v1/web/hot/search/list/?device_platform=webapp&aid=6383&channel=channel_pc_web&detail_list=1&source=6&pc_client_type=1&version_code=170400&version_name=17.4.0&cookie_enabled=true&screen_width=1440&screen_height=900&browser_language=en-US&browser_platform=MacIntel&browser_name=Chrome&browser_version=114.0.0.0&browser_online=true&engine_name=Blink&engine_version=114.0.0.0&os_name=Mac+OS&os_version=10.15.7&cpu_core_num=4&device_memory=8&platform=PC&downlink=1.5&effective_type=3g&round_trip_time=600&webid=7246602757481154103&msToken=A-dVF1R3L6t6yeYNVsnPA7YMBkohetjMSING0Q3C3UGXBq7B_lhuJVv6N1hF8Yum9qxQMMVa_GiSsER1Yf595bF5Q_O3-JY1hQ8s-ZPB21PCVYL5C7PEjQiPAMGtGg==&X-Bogus=DFSzswVOXn0ANcrmtjl2YN7TlqSE'

定义一个请求头,从开发者模式中的Headers->Request Headers中复制下来:

# 构造请求头
h1 = {
    'Cookie': '换成自己的cookie值',
    'Accept': 'application/json, text/plain, */*',
    'Accept-Encoding': 'gzip, deflate, br',
    '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'
}

不知如何获取Cookie?参考下图:
获取Cookie方法

向目标地址发送请求(带上请求头),并用json格式接收返回数据:

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

定义一些空列表,用于存储数据:

position_list = []  # 热榜排名
title_list = []  # 热榜标题
time_list = []  # 热榜时间
hot_value_list = []  # 热度值
label_list = []  # 热榜标签

以“热榜标题”为例,解析数据:

for data in data_list:
    # 热榜标题
    title = data['word']
    print('热榜标题:', position, title)
    title_list.append(title)

其他字段同理,不再赘述。

最后,把解析到的数据,存储到Dataframe中,并保存到csv文件里:

# 拼装爬取到的数据为DataFrame
df = pd.DataFrame(
    {
        '热榜排名': position_list,
        '热榜标题': title_list,
        '热榜时间': time_list,
        '热度值': hot_value_list,
        '热榜标签': label_list,
    }
)
# 保存结果到csv文件
df.to_csv('抖音热榜.csv', index=False, encoding='utf_8_sig')

这里需要注意的是,to_csv要加上encoding='utf_8_sig'参数,防止保存到csv文件产生乱码数据。
查看部分爬取结果:
部分爬取结果

共51条数据(含1条置顶热搜),对应热榜TOP50排名。
每条数据含5个字段:热榜排名,热榜标题,热榜时间,热度值,热榜标签。。

三、同步讲解视频

3.1 代码演示视频

代码演示: 【Python爬虫演示】用Python爬抖音热榜数据

四、获取完整源码

get完整源码:【爬虫案例】用Python爬取抖音热榜数据!


我是@马哥python说 ,持续分享python源码干货中!

标签:音热榜,title,Python,list,爬虫,取抖,热榜,csv,数据
From: https://www.cnblogs.com/mashukui/p/douyin_hot.html

相关文章

  • python数据结构类型从入门到精通
    Python是一种灵活且强大的编程语言,它提供了丰富的数据类型和数据结构,使得我们可以有效地组织和操作数据。本文将介绍Python中常见的数据类型和数据结构,包括数字、字符串、列表、元组、字典和集合,并通过相关代码进行讲解。一、数字Python中的数字类型包括整数(int)、浮点数(float)和......
  • Python glob库的用法
    一、匹配指定文件夹下的所有文件files=glob.glob("C:\\Users\\liuchunlin2\\Desktop\\测试数据\\*")print(files) 二、递归匹配指定文件夹及其子文件夹下的所有xlsx文件files=glob.glob("C:\\Users\\liuchunlin2\\Desktop\\测试数据\\**\\*.xlsx",recursive=True)p......
  • matlab用udp发数据,python接受数据
    用UDP在Matlab中发送数据,Python中接收数据在科学研究和工程领域中,数据的传输和通信是非常重要的。在实际应用中,我们经常需要在不同的编程语言之间传输数据。本文将介绍如何在Matlab中使用UDP协议发送数据,并在Python中接收这些数据。UDP协议简介用户数据报协议(UDP)是一种无连接的......
  • matlab的cell如何用python表示
    使用Python表示Matlab的cell在Matlab中,cell是一种数据类型,用于存储不同类型的数据,类似于Python中的列表。在Python中,我们可以使用列表、字典或者NumPy数组来模拟Matlab的cell。本文将介绍使用列表和字典来表示Matlab的cell的方法,并给出相应的代码示例。1.使用列表表示Matlab的ce......
  • mac 用pyenv命令安装python出问题
    pyenv命令安装Python遇到的问题及解决方法引言pyenv是一款用于管理多个Python版本的工具。它可以帮助我们在同一台机器上安装和切换不同的Python版本,从而方便地进行开发和测试。然而,在使用pyenv命令安装Python时,有时候会遇到一些问题。本文将介绍一些常见的问题,并提供相应的解决......
  • 安装Python310和Git
    安装Python3101.下载2.安装安装Git1.下载安装2.汉化GitBash2.汉化GitGUI本文写文时间2023年7月22日,可能在未来会不适合实际情况但是在写文时,不管是跑AI模型还是编译V8引擎,Python310都是稳定可用的安装Python3101.下载访问Python的下载页https://www.python.......
  • python获取当前项目根目录
    defget_item_path(item_name):""":paramitem_name:项目名称,如pythonProject:return:项目根目录"""#获取当前所在文件的路径cur_path=os.path.abspath(os.path.dirname(__file__))#获取根目录returncur_path[:cur_path.......
  • 一个批处理,解决你重装python第三方模块的烦恼~(1.0版本)
    @echooffpipconfigsetglobal.index-urlhttps://pypi.tuna.tsinghua.edu.cn/simplepython-mpipinstall--upgradepippipinstallpyinstallerpipinstallpygamepipinstalljiebapipinstallpandaspipinstallbeautifulsoup4pipinstallrequestspipinstallnumpy......
  • python str 转化为 numpy
    Pythonstr转化为numpy1.简介在开发过程中,我们经常需要将字符串(str)转化为numpy数组,以便进行各种数据处理和分析。本文将介绍如何使用Python将字符串转化为numpy数组,并提供详细的代码示例和解释。2.转化流程下面是将Python字符串转化为numpy数组的整个流程,我们可以用一个表......
  • python 调用halcon
    Python调用HalconHalcon是一种功能强大的机器视觉库,提供了丰富的图像处理和分析工具。在本文中,我们将介绍如何使用Python调用Halcon库,并展示一些常见的图像处理任务的示例代码。安装Halcon库在开始之前,我们需要先安装Halcon库。Halcon提供了Python的接口,可以通过pip命令进行安装......