Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

百度热搜榜爬虫/Baidu Hot Search Board Crawler

基于Python3的百度热搜榜数据采集脚本,支持热搜标题、排名、置顶状态、热度标签、内容标签和详情链接等核心字段导出。

Python 3.8+ requests pandas

📖 项目简介

本项目是一个面向Python爬虫初学者的百度热搜榜采集示例。脚本通过请求百度热搜榜接口,解析返回的JSON数据,并将热搜内容整理为Excel文件,方便后续用Excel、Python或其他数据分析工具处理。

源码结构简单,适合学习以下内容:

  • 使用requests发送HTTP请求
  • 解析接口返回的JSON数据
  • 适配接口字段和嵌套列表结构变化
  • 提取列表数据中的核心字段
  • 使用pandas生成表格数据
  • 将结果保存为Excel文件

🎬 讲解视频

源码讲解视频:https://www.bilibili.com/video/BV1Bq4y1v7p7/

✨ 功能特点

  • 无需登录账号,不依赖Cookie
  • 自动抓取百度热搜榜数据
  • 兼容百度热搜新旧接口列表结构
  • 支持提取标题、排名、置顶状态、标签和链接
  • 自动补充批次logid和榜单名称
  • 保存为xlsx文件,方便直接用Excel打开

📊 采集字段

字段 说明 示例
热搜标题 热搜事件标题 微信迎来史上最大更新
热搜排名 当前热搜排序,置顶内容为0,普通内容从1开始 1
是否置顶 是否为置顶热搜 False
热度标签代码 平台返回的热度标签代码 1
热度标签名 平台返回的热度标签名称
内容标签名 平台返回的内容业务标签 热议
特殊内容类型 平台返回的特殊内容类型 2
链接地址 百度移动端搜索结果链接 https://m.baidu.com/s?word=...
批次logid 本次接口请求返回的日志ID 3813341776
榜单名称 当前榜单名称 热搜榜

📄 运行结果示例

脚本运行完成后,会在当前目录生成:

百度热搜榜.xlsx

Excel示例:

热搜标题 热搜排名 是否置顶 热度标签代码 热度标签名 内容标签名 榜单名称
把党的政治建设作为党的根本性建设 0 True 热搜榜
微信迎来史上最大更新 1 False 1 热议 热搜榜
哈兰德偷喝对方门将的水 2 False 3 热搜榜

🚀 快速开始

环境要求

  • Python3.8+
  • Windows/macOS/Linux

安装依赖

pip install requests pandas openpyxl

基本使用

python3 baidu_hot.py

运行时终端会输出接口响应状态码和抓取到的热搜标题。运行完成后,采集结果会保存到百度热搜榜.xlsx

⚙️ 核心原理

请求地址

https://top.baidu.com/api/board?platform=wise&tab=realtime

请求头

脚本设置了移动端User-AgentAcceptReferer等基础请求头,不需要配置Cookie、Token或账号信息。

header = {
    'User-Agent': 'Mozilla/5.0 ... Mobile Safari/537.36',
    'Host': 'top.baidu.com',
    'Accept': 'application/json, text/plain, */*',
    'Referer': 'https://top.baidu.com/board?tab=novel',
}

核心流程

  1. 请求百度热搜榜接口
  2. 使用response.json()解析接口数据
  3. 兼容读取cards[0].content[0].content等热搜列表结构
  4. 提取wordindexisTophotTagnewHotNamelabelTagNameurl等字段
  5. 使用pandas.DataFrame整理数据
  6. 导出为Excel文件

🎯 适用场景

  • Python爬虫入门练习
  • 热点事件观察
  • 百度热搜数据归档
  • Excel数据处理学习
  • pandas表格生成示例

❓ 常见问题

运行后没有生成Excel怎么办?

先确认依赖是否安装成功:

pip install requests pandas openpyxl

再确认当前目录是否有baidu_hot.py,并在脚本所在目录运行命令。

为什么部分字段是空的?

百度热搜接口并不是每条热搜都会返回所有标签字段。例如置顶内容通常没有hotTag,普通内容也不一定有newHotNamelabelTagName

为什么脚本突然报错?

热搜接口字段可能会发生变化。如果返回结构调整,脚本中读取字段的位置也需要同步修改。

是否需要Cookie?

当前脚本不需要Cookie。请不要把个人Cookie、Token、账号密码等敏感信息提交到公开仓库。

⚠️ 注意事项

  • 请合理控制运行频率,避免对目标站点造成压力。
  • 本项目仅用于学习研究,不建议用于商业采集或批量抓取。
  • 接口可用性和字段结构可能随目标网站调整而变化。
  • 使用本项目时,请自行遵守目标网站的服务条款、robots规则以及相关法律法规。

📌 免责声明

本项目仅供学习和研究使用。因使用本项目产生的任何问题或后果,由使用者自行承担。

About

基于Python3的百度热搜榜数据采集脚本,支持热搜标题、排名、置顶状态、热度标签、内容标签和详情链接等核心字段导出。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages