python爬虫实战(10)--获取本站热榜

本文介绍了如何通过Python的requests和pandas库从CSDN网站获取热榜博客数据,包括处理请求头、解析JSON、存储为DataFrame并导出为Excel文件的过程。
摘要由CSDN通过智能技术生成

1. 需要的类库

import requests
import pandas as pd

2. 分析

通过分析,本站的热榜数据可以直接通过接口拿到,故不需要解析标签,请求热榜数据接口

    url = "https://xxxt/xxxx/web/blog/hot-rank?page=0&pageSize=25&type=" #本站地址

直接请求解析会有点问题,数据无法解析,加上请求头

headers = {
    "Accept": "*/*",
    "Accept-Encoding": "gzip, deflate, br",
    "Accept-Language": "zh-CN,zh;q=0.9",
    "Sec-Ch-Ua": "\"Chromium\";v=\"116\", \"Not)A;Brand\";v=\"24\", \"Google Chrome\";v=\"116\"",
    "Sec-Ch-Ua-Mobile": "?1",
    "Sec-Ch-Ua-Platform": "\"Android\"",
    "Sec-Fetch-Dest": "empty",
    "Sec-Fetch-Mode": "cors",
    "Sec-Fetch-Site": "same-site",
    "User-Agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Mobile Safari/537.36"
}

完整请求代码

    # 发送HTTP请求
    r = requests.get(url, headers=headers)

    # 解析JSON数据
    data = r.json()

    # 提取所需信息
    articles = []
    for item in data["data"]:
        title = item["articleTitle"]
        link = item["articleDetailUrl"]
        rank = item["hotRankScore"]
        likes = item["favorCount"]
        comments = item["commentCount"]
        views = item["viewCount"]
        author = item["nickName"]
        time = item["period"]

        articles.append({
            "标题": title,
            "链接": link,
            "热度分": rank,
            "点赞数": likes,
            "评论数": comments,
            "查看数": views,
            "作者": author,
            "时间": time
        })

3.导出Excel

    # 创建DataFrame
    df = pd.DataFrame(articles)

    # 将DataFrame保存为Excel文件
    df.to_excel("csdn_top.xlsx", index=False)

4. 成果展示

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值