python获取热搜数据并保存成Excel

news2024/11/26 5:18:32

python获取百度热搜数据

  • 一、获取目标、准备工作
  • 二、开始编码
  • 三、总结

一、获取目标、准备工作

1、获取目标: 本次获取教程目标:某度热搜

2、准备工作

  • 环境python3.x
  • requests
  • pandas

       requests跟pandas为本次教程所需的库,requests用于模拟http请求,pandas用于数据处理(将结果保存为Excel)。

  • 在Chrome浏览器中打开需要请求的页面,然后F12打开浏览器的控制台。点击Network选择网络,然后再点击XHR。找到相应的XHR请求,就能获取到热搜数据接口了。

二、开始编码

  1. 导入所依赖的库
import requests
import pandas as pd
  1. 构造一个请求头:
browse_header = {
    "Accept": "application/json, text/plain, */*",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36",
    "Host": "top.baidu.com",
    "Referer": "https://top.baidu.com/board",
}
  1. 定义一个请求接口,即数据地址
url = "https://top.baidu.com/api/board?platform=wise&tab=realtime"
  1. 发送请求,由于接口返回的是JSON格式,所以这里一步到位,将响应结果也转成JSON格式。
json = requests.get(url, headers=browse_header).json()
  1. 注意:某度热搜有两种热搜,一个置顶热搜、一个普通热搜,所以我们得分开获取。
# 爬取置顶热搜
top_content_list = json['data']['cards'][0]['topContent']
# 爬取普通热搜
content_list = json['data']['cards'][0]['content']
  1. 然后再分别进行json解析,对应的字段(标题、排名、热搜指数、描述、链接地址)。
df = pd.DataFrame(  # 拼装爬取到的数据为DataFrame
	{
		'热搜标题': title_list,
		'热搜排名': order_list,
		'热搜指数': score_list,
		'描述': desc_list,
		'链接地址': url_list
	}
)
df.to_excel('百度热搜榜.xlsx', index=False)  # 保存结果数据

完成代码:

import requests
import pandas as pd

browse_header = {
    "Accept": "application/json, text/plain, */*",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36",
    "Host": "top.baidu.com",
    "Referer": "https://top.baidu.com/board",
}
url = "https://top.baidu.com/api/board?platform=wise&tab=realtime"
json = requests.get(url, headers=browse_header).json()

# 爬取置顶热搜
top_content_list = json['data']['cards'][0]['topContent']
print(top_content_list)
# 爬取普通热搜
content_list = json['data']['cards'][0]['content']
print(content_list)
title_list = []
order_list = []
score_list = []
desc_list = []
url_list = []
for top_item in top_content_list:
    title_list.append(top_item.get('word'))
    order_list.append("置顶")
    score_list.append(top_item.get("hotScore"))
    desc_list.append(top_item.get("desc"))
    url_list.append(top_item.get("url"))
index = 0
for content in content_list:
    index += 1
    title_list.append(content.get('word'))
    order_list.append(index)
    score_list.append(content.get("hotScore"))
    desc_list.append(content.get("desc"))
    url_list.append(content.get("url"))
df = pd.DataFrame({
    '热搜标题': title_list,
    '热搜排名': order_list,
    '热搜指数': score_list,
    '描述': desc_list,
    '链接地址': url_list
})
df.to_excel('百度热搜榜.xlsx', index=False)  # 保存结果数据

最后,查看一下获取到的数据:
在这里插入图片描述
一共31条数据(1条置顶热搜+30条普通热搜)。

三、总结

以上就是整个获取的数据,如果你们有其他数据需要用python获取的,欢迎在评论区留言。最后给你们推荐一个前端实用工具:JS加密工具

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/649882.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

牛客网基础语法51~60题

牛客网基础语法51~60题😘😘😘 💫前言:今天是咱们第六期刷牛客网上的题目。 💫目标:对每种的循环知识掌握熟练,用数学知识和循环结合运用熟练,对逻辑操作符运用熟练。 &am…

接口测试入门神器 —— Requests

起源 众所周知,自动化测试是软件测试爱好者毕生探索的课题。我认为,只要把 接口测试 做好,你的自动化测试就至少成功了一半。 应部分热情读者要求,今天跟大家一起了解 python 接口测试库- Requests 的基本用法并进行实践&#x…

【跑实验03】如何可视化GT边界框,如何选择边界框内部的边界框,如何可视化GT框和预测框,如何定义IoU阈值下的不同边界框?

文章目录 一、如何可视化GT边界框?二、GT框和预测框的可视化三、根据IoU阈值来选择 一、如何可视化GT边界框? from PIL import Image, ImageDrawdef draw_bboxes(image, bboxes, color"red", thickness2):draw ImageDraw.Draw(image)for bbo…

精雕细琢,Smartbi电子表格软件重构、新增、完善

Smartbi SpreadSheet电子表格软件自发布以来,我们一直关注着用户的诉求,也在不断地对产品进行改进和优化,确保产品能够持续满足用户需求。经过一段时间的努力,产品在各方面都有了明显的改进,接下来,让我们一…

全网最详细的postman接口测试教程,一篇文章满足你

1、前言   之前还没实际做过接口测试的时候呢,对接口测试这个概念比较渺茫,只能靠百度,查看各种接口实例,然后在工作中也没用上,现在呢是各种各样的接口都丢过来,总算是有了个实际的认识。因为只是接口的…

不写单元测试的我,被批了 ,怎么说?

我是凡哥,一年CRUD经验用十年的markdown程序员👨🏻‍💻常年被誉为职业八股文选手 最近在看单元测试的东西,想跟大家聊聊我的感受。单元测试这块说实在的,我并不太熟悉,我几乎不写单元测试&…

k8s 的 Deployment控制器

1. RS与RC与Deployment关联 RC(Replication Controller)主要作用就是用来确保容器应用的副本数始终保持在用户定义的副本数。即如果有容器异常退出,会自动创建新的pod来替代;而如果异常多出来的容器也会自动回收。K8S官方建议使用…

JDBC BasicDAO详解(通俗易懂)

目录 一、前言 二、BasicDAO的引入 1.为什么需要BasicDAO? 2.BasicDAO示意图 : 三、BasicDAO的分析 1.基本说明 : 2.简单设计 : 四、BasicDAO的实现 0.准备工作 : 1.工具类 : 2.JavaBean类 : 3.BasicDAO类 / StusDAO类 : 4.测试类 : 一、前言 第七节内容…

一文读懂物联网平台如何搞定80%以上的物联网项目

太卷了!一套物联网平台就能搞定80%以上的项目?! 在刚刚结束的AIRIOT4.0物联网平台发布会上,航天科技控股集团股份有限公司智慧物联事业部总经理田淼给出答案。 在主题演讲环节,田总以【80%的物联网项目服务商都会面临…

分组函数group by使用技巧

一、需求:获取销售版本组合 颜色(属性名) (黑色,白色…) 属性值集合 Datapublic static class ItemSaleAttrsVo{private Long attrId;private String attrName;//当前属性有多少种版本:黑色,白色,蓝色,这里…

奇妙敏捷之旅·青岛站,真的太酷啦!

高手的世界里,一块小小的积木,也能立刻感受敏捷的乐趣! 2023奇妙敏捷之旅青岛站,希望将理论知识、实践应用融入互动过程,实现思维的交流、碰撞以及面对面的沟通。因此,大家看到的奇妙敏捷之旅的现场&#…

Linux:课后习题及其答案

第一章 Linux系统初步了解 Q1:简述Linux系统的应用领域 Linux服务器、嵌入式Linux系统、软件开发平台、桌面应用 Q2:Linux系统的特点 开放性、多用户、多任务、良好的用户界面、设备独立性、丰富的网络功能、可靠的系统安全、良好的可移植性 Q3&#…

oracle19c rac、nfs部署教程

本文基于19c进行部署,使用centos7.9,nfs做共享存储 一、首先进行网络规划和配置 该实验一共三台机器一台是nfs,另外两台做rac 1.每台机器至少2块网卡,网卡名字必须一样(publicip和VIP使用的是同一张网卡,privilegeip是另外一张网卡改ip 仅做r…

C语言中断言库与断言函数assert()的用法总结

断言库与断言函数的相关使用总结! 断言函数的使用断言函数及断言库总结#define NDEBUG 断言函数在实现常见算法中的使用 断言函数的使用 话不多说,先来个例子感受一番断言函数assert()到底有什么功能。 由上面例子可知,assert()函数中在z的…

快速开发框架:一招解锁企业流程化管理!

在流程化管理时代,什么样的平台可以帮助企业实现高效率发展?在信息化爆炸式发展的今天,有很多企业期望能通过专用的快速开发框架实现提质增效发展。目前,低代码技术平台是较为盛行的平台,拥有易操作、灵活、增效等优势…

AntDB数据库灾备方案介绍

AntDB灾备方案(双中心方案) AntDB数据库节点分布于两个机房,并使用 patroni etcd 组件进行HA管理,主节点故障时能自动切换。切换时优先选择同机房的同步slave节点选举为new master。 部署图中相关组件说明: ⚫patroni:通过参…

Revit中楼梯该怎么画?包教包会!

绘制楼梯是室内装修中必不可少的一部分,因为楼梯的安装不仅仅是为了连接不同楼层,更是装饰整个室内空间的重要组成部分。 在楼梯的绘制过程中,需要结合实际情况进行设计,包括楼层高度、楼梯数量、台阶宽度、扶手高度等因素&#…

AntDB数据冷热分离方案

数据冷热分离 数据的存在价值,在于其被使用的程度,即被查询或更新的频率。在不同的业务系统中,人们对处于不同时期的数据有着不同的使用需求。比如,在网络流量行为分析系统中,客户会对最近一个月公司发生的安全事件和…

树莓派系统卸载桌面环境及系统瘦身

在我们刚入门树莓派时使用都是带桌面环境的系统,系统自带了非常多的实用软件,在学习和使用了一段时间后,我发现已经完全用不到桌面环境了,平时几乎都是通过 ssh 远程工具进行交互,并以命令形式来对系统进行操作。 Ras…

PHP日期时间函数date() 详解

**date()函数是我们在php开发中常碰到并且会使用到的一个日期函数,下面我来给大家介绍date()函数的一些基本扮靓和方法,有需要了解的朋友可进入参考. 日期时间函数是PHP 的核心组成部分。无需安装即可使用这些函数。下面来详细说说date函数的具体用法&a…