金骏五金 发表于 2023-7-23 11:20:59

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

目录

[*]一、爬取目标
[*]二、编写爬虫代码
[*]三、同步讲解视频

[*]3.1 代码演示视频

[*]四、获取完整源码

一、爬取目标

您好,我是@马哥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?参考下图:

向目标地址发送请求(带上请求头),并用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源码干货中!

来源:https://www.cnblogs.com/mashukui/p/douyin_hot.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 【爬虫案例】用Python爬取抖音热榜数据!