python爬虫实战(9)--获取澎pai热榜

1. 需要的类包

复制代码
import pandas as pd
import requests

2. 请求地址

通过分析,数据可以直接从接口获取,无需解析页面标签,直接取出我们需要的数据即可。

复制代码
def fetch_hot_news(api_url):
    response = requests.get(api_url)

    if response.status_code == 200:
        data = response.json()
        hot_news = data.get("data", {}).get("hotNews", [])
        return hot_news
    else:
        print(f"Failed to retrieve data. Status code: {response.status_code}")
        return []

3. 导出表格

复制代码
def export_to_excel(hot_news_data):
    if not hot_news_data:
        return

    # Add the missing URL field
    base_url = "https://www.xxx.cn/newsDetail_forward_" #澎某pai
    hot_news_data = [{
        **news,
        "URL": f"{base_url}{news['contId']}"
    } for news in hot_news_data]

    # Create a DataFrame
    df = pd.DataFrame(hot_news_data)

    # Choose only relevant columns
    relevant_columns = ["contId", "name", "pubTime", "URL"]
    df = df[relevant_columns]

    # Export to Excel
    df.to_excel("pengpai-top.xlsx", index=False)
    print("Data exported to Excel successfully.")

处理url

复制代码
def main():
    api_url = "https:/xx/wwwIndex/xxx" #分析得到的需要请求的接口地址
    hot_news_data = fetch_hot_news(api_url)

    if hot_news_data:
        export_to_excel(hot_news_data)
    else:
        print("No hot news data found.")

4. 成果展示

相关推荐
代龙涛几秒前
WordPress archive.php 分类与归档页面开发指南
开发语言·后端·php·wordpress
格林威2 分钟前
面阵相机 vs 线阵相机:堡盟与大恒相机选型差异全解析 附C++ 实战演示
开发语言·c++·人工智能·数码相机·计算机视觉·视觉检测·工业相机
m0_613856294 分钟前
CSS如何实现复杂UI组件开发_结合BEM规范提升架构清晰度
jvm·数据库·python
xyq20245 分钟前
相邻节点迭代器
开发语言
YSF2017_35 分钟前
C语言15-makefile(2)——makefile的自定义变量及两个函数
c语言·开发语言
Jun6266 分钟前
yolo11-目标检测&官方模型测试
人工智能·python·目标检测
YaBingSec6 分钟前
玄机靶场—Apache-druid(CVE-2021-25646) WP
java·开发语言·笔记·安全·php·apache
qq_330037997 分钟前
告别重复编码-Symfony自动化开发指南
jvm·数据库·python
少控科技8 分钟前
小数典应用:农场环境数据采集监控
开发语言·windows·c#
烟雨孤舟9 分钟前
Django 后端项目企业级开发规范文档
后端·python·django