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

news/2024/7/19 9:17:16 标签: python, 爬虫, 开发语言

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. 成果展示

在这里插入图片描述


http://www.niftyadmin.cn/n/5319155.html

相关文章

【动态规划】20子数组系列_环形子数组的最大和_C++(medium)

题目链接:leetcode环形子数组的最大和 目录 题目解析: 算法原理 1.状态表示 2.状态转移方程 3.初始化 4.填表顺序 5.返回值 编写代码 题目解析: 题目让我们求返回 nums 的非空 子数组 的最大可能和 这道题如果是按照-这道题-是不对…

18_类加载

文章目录 类加载器类加载时机Java代码的3个阶段 反射关于Class配置文件(.properties)Properties类通过反射获取构造方法(Constructor)通过反射获取成员变量(Field)通过反射获取成员方法(Method) 其他API自定义类加载器反射的应用 类加载器 分类: Bootstrap ClassLo…

启动Vue项目,报错:‘vue-cli-service‘ 不是内部或外部命令,也不是可运行的程序

前言: 最近在打开一个Vue项目的时候,打开之后输入命令行:npm run serve之后发现,报错:vue-cli-service 不是内部或外部命令,也不是可运行的程序,以下是解决方案: 报错图片截图&…

算法训练营Day38

#Java #完全背包 #动态规划 Feeling and experiences: 动态规划:完全背包理论基础 之前学习的是01背包,其特点在于:每个物品都只能取一个 而完全背包则是可以一个物品取多个。 有N件物品和一个最…

程序员一定要知道的限流大法:令牌桶算法

记得很多年前就有喜欢在面试的时候问这个问题:如何在高并发、大流量的时候,进行服务限流?不同人能给出不同的解决办法。无外乎两种处理: 在客户端限流。 在服务端限流。 在客户端限流,就是利用产品设计,让…

【面试高频算法解析】算法练习8 单调队列

前言 本专栏旨在通过分类学习算法,使您能够牢固掌握不同算法的理论要点。通过策略性地练习精选的经典题目,帮助您深度理解每种算法,避免出现刷了很多算法题,还是一知半解的状态 专栏导航 二分查找回溯(Backtracking&…

canvasdrawer 微信原生小程序生成海报图片

在小程序中生成海报是一种非常有效的推广方式 用户可以使用小程序的过程中生成小程序海报并分享给他人 通过海报的形式,用户可以直观地了解产品或服务的特点和优势 常见绘制海报方式 目前,小程序海报有两种常见的实现方式: canvas 绘制…

InternLM第3节课笔记

基于 InternLM 和 LangChain 搭建你的知识库 1 大模型开发范式 LLM局限性:时效性、专业能力有限、定制化成本高 RAG(检索、增强、生成) 外挂知识库 微调 2 LangChain简介 LangChain 核心组成模块 Chains:组件组合实现端到…