python获取实战(4)--获取某yin热榜

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.某音.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. 效果验证

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值