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

news2024/11/27 11:38:49

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": "weibo.com",
    "Referer": "https://weibo.com/newlogin?tabtype=search&gid=&openLoginLayer=0&url=https%3A%2F%2Fweibo.com%2F",
    "Cookie": "_xsrf=Pd0NpG6J8kZdHtzBVnNyQP1g0rO7NKeg; _zap=d7f27b9f-4fe3-4ef4-9376-df278af16940;"
}
  1. 定义一个请求接口,即数据地址
url = "https://weibo.com/ajax/side/hotSearch"
  1. 发送请求,由于接口返回的是JSON格式,所以这里一步到位,将响应结果也转成JSON格式。
res = requests.get(url, headers=browse_header).json()
  1. 注意:某博有两种热搜数据,一个置顶热搜、一个普通热搜,所以我们得分开获取。
# 获取置顶热搜
top_content_list = res['data']['hotgovs']
# 热搜列表
content_list = res['data']['realtime']
  1. 然后再分别进行json解析,对应的字段(标题、排名、热搜指数、描述、链接地址)。
df = pd.DataFrame(  # 拼装爬取到的数据为DataFrame
	{
		'热搜话题': title_list,
	    '热搜排名': order_list,
	    '热搜热度': score_list,
	    '描述': desc_list,
	    '链接地址': url_list
	}
)
df.to_excel('微博热搜榜.xlsx', index=False)  # 保存结果数据

注意:普通热搜没有返回热搜的链接,我们得自己组装链接::
url_list.append(f"https://s.weibo.com/weibo?q=%23{content_item['word']}%23")

完整代码:

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": "weibo.com",
    "Referer": "https://weibo.com/newlogin?tabtype=search&gid=&openLoginLayer=0&url=https%3A%2F%2Fweibo.com%2F",
    "Cookie": "_xsrf=Pd0NpG6J8kZdHtzBVnNyQP1g0rO7NKeg; _zap=d7f27b9f-4fe3-4ef4-9376-df278af16940;"
}

url = "https://weibo.com/ajax/side/hotSearch"
res = requests.get(url, headers=browse_header).json()
# 获取置顶热搜
top_content_list = res['data']['hotgovs']
# 热搜列表
content_list = res['data']['realtime']
title_list = []
order_list = []
score_list = []
desc_list = []
url_list = []
# 置顶热搜数据组装
for content in top_content_list:
    order_list.append("置顶")
    title_list.append(content['word'])
    score_list.append('')
    desc_list.append(content['note'])
    url_list.append(content['url'])

# 普通热搜数据组装
index = 0
for content_item in content_list:
    index += 1
    order_list.append(index)
    title_list.append(content_item['word'])
    score_list.append(content_item['num'])
    desc_list.append(content_item['note'])
    url_list.append(f"https://s.weibo.com/weibo?q=%23{content_item['word']}%23")

# 将组装好的数据保存成Excel
df = pd.DataFrame({
    '热搜话题': title_list,
    '热搜排名': order_list,
    '热搜热度': score_list,
    '描述': desc_list,
    '链接地址': url_list
})
df.to_excel('微博热搜榜.xlsx', index=False)  # 保存结果数据

最后,查看一下获取到的数据:
在这里插入图片描述
一共52条数据。

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

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

相关文章

AM@空间曲面@平面@面面位置关系@点面距离

文章目录 曲面曲线平面点法式方程不共线的3点确定一个平面方程同解平面方程的一般式特别情形与坐标轴平行的平面与坐标轴垂直与坐标面平行的平面ABC0例 截距式两平面的夹角👺两平面的位置关系垂直关系平行关系例 点到平面的距离小结例 曲面 空间解析几何中"曲…

潜伏顶升AMR ∣解决方案背后——不断进化的市场和客户需求

潜伏顶升式AMR是通过潜入料架底部,利用升降机构提升料架,实现物料的输送;可支持货架、料车、笼车等多种载具,多用于物料架、物料车的转运。有效降低人力资源成本,减轻人工劳动强度。 作为移动机器人(AMR/AGV)近几年发展…

SpringBoot中集成Redis

目标 在原有SpringBoot项目中&#xff0c;集成Redis&#xff0c;并实现Dao层&#xff0c;Service层&#xff0c;Controller层。 pom.xml <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</…

大数据云计算运维之Nginx反向代理与负载均衡

Nginx 简介 一、Nginx概述 1.1 概述 Nginx&#xff08;“engine x”&#xff09;是一个高性能的 HTTP /反向代理的服务器及电子邮件&#xff08;IMAP/POP3)代理服务器。 官方测试nginx能够支撑5万并发&#xff0c;并且cpu&#xff0c;内存等资源消耗却非常低&#xff0c;运…

合并reducer

reducer工程化第一步&#xff1a;合并 各个模块下reducer的模板: 1.符是代表直接从src下面进行寻找 2.定义初始状态 3.深拷贝状态 4.进行行为判断 votereducer这么写&#xff1f; 合并reducer 导出总的reducer 模块化开发后往事件池放的更新方法&#xff0c;在disptch的时候…

交换机新设备版本升级(超详细!快进来学习!)

本文主要讲述了华三新上架交换机机设备升级全过程&#xff01;同理&#xff0c;其他的交换机设备进行升级也是同样的思路&#xff01; 升级流程 1、使用console线以及网线将电脑和交换机进行连接&#xff08;console口和网口&#xff09;; 2、打开以太网卡&#xff0c;“控制面…

25k字图文解读YOLOv8及实例分割(附python代码)

学习使用 未经详细专业审核 目录 0.引言1.概述1.1 Backbone1.2 Head1.3 Loss1.4 Train 2.模型结构2.1 Backbone和Neck的具体变化2.2 Head的具体变化 3.Loss计算3.1 正负样本分配策略3.2 Loss计算 4.训练数据增强5.训练策略6.模型推理过程7.网络模型解析7.1 卷积神经单元&#x…

软件设计模式之原型模式

一.定义 原型模式(Prototype Pattern)的简单程度仅次于单例模式和迭代器模式。正是由于简单&#xff0c;使用的场景才非常地多&#xff0c;其定义如下: Specify the kinds of objects to create using a prototypical instance, and create new objects by copyingthis protot…

基础设施SIG月度动态:ABS新增ISO、VHD镜像构建,自动热补丁制作流程正式上线

基础设施 SIG&#xff08;OpenAnolis Infra SIG&#xff09;目标&#xff1a;负责 OpenAnolis 社区基础设施工程平台的建设&#xff0c;包括官网、Bugzilla、Maillist、ABS、ANAS、CI 门禁以及社区 DevOps 相关的研发工程系统。 01 SIG 整体进展 1、龙蜥社区官网与 CSDN dev…

smigroup LAFERT 伺服电机 B7108P-03177

​ smigroup LAFERT 伺服电机 B7108P-03177 smigroup LAFERT 伺服电机 B7108P-03177 从系统的可扩展性和兼容性的方面来说&#xff1a; 市场上控制类产品繁多&#xff0c;无论DCS还是PLC&#xff0c;均有很多厂商在生产和销售。对于PLC系统来说&#xff0c;一般没有或很少有扩…

如何与领导团队沟通并赢得他们的支持以推动企业的敏捷转型进程?

在与领导团队沟通并赢得他们对敏捷转型的支持时&#xff0c;重要的是要从战略上有效地处理这种情况。建议采取的一些步骤&#xff1a; 了解他们的观点&#xff1a;在开始任何沟通之前&#xff0c;尝试了解领导团队对敏捷转型的担忧和保留意见。可以帮助调整方法并解决具体问题。…

2023年5月信息系统项目管理师试题及答案解析

请点击↑关注、收藏&#xff0c;本博客免费为你获取精彩知识分享&#xff01;有惊喜哟&#xff01;&#xff01; 1.“新型基础设施”主要包括信息技术设施&#xff0c;融合基础设施和创新基础设施三个方面&#xff0c;其中信息基础设施包括___1___。 ①通信基础设施 ②智能交…

【Mysql 存储过程 Or 存储函数 傻傻分不清? 】

MySQL的存储函数&#xff08;自定义函数&#xff09;和存储过程都是用于存储SQL语句的。但是什么时候用什么呢&#xff1f;是不是总是傻傻的分不清&#xff1f; 本文来详细的讲一下存储函数 和存储过程 &#xff0c;以后再也不会迷糊。 存储函数 | 存储过程 一、 异同点二、 存…

云原生之深入解析Kubernetes中Kubectl Top如何进行资源监控

一、Kubectl top 的使用 kubectl top 是基础命令&#xff0c;但是需要部署配套的组件才能获取到监控值&#xff1a; 1.8 以下&#xff1a;部署 heapter&#xff1b; 1.8 以上&#xff1a;部署 metric-server&#xff1b; kubectl top node&#xff1a;查看 node 的使用情况&a…

25.单元测试、反射

一.单元测试 1.1 什么是单元测试 单元测试就是针对最小的功能单元编写测试代码&#xff0c;Java程序最小的功能单元是方法。因此&#xff0c;单元测试就是针对Java方法进行的测试&#xff0c;进而检查 方法的正确性。 1.2 目前测试方法是怎么进行的 ①只有一个main方法&#x…

可观测性最佳实践 | 警惕!未知的风险正在摧毁你的系统

无声的刺客最为致命&#xff0c;往往表面看似云淡风轻&#xff0c;实际早已危机重重&#xff0c;血雨腥风一触即发。这样的场面看似离我们很遥远&#xff0c;但每个开发运维人员实际都遇到过。 在全球数字经济大潮下&#xff0c;现代企业纷纷投身于业务数字化转型的浪潮。越来越…

java8 (jdk 1.8) 新特性—— 方法引用+构造器引用

1. 方法引用 方法引用 其实 本质上 就是Lambda 表达式 &#xff0c;之前已经知道 Lambda 是作为一个函数式接口的实例 &#xff0c;因此&#xff0c;方法引用也就是一个函数式接口的实例 使用的情况&#xff1a; 当要将值传给Lambda 体&#xff0c;已经有实现的方法&#xff…

【Python 随练】判断101到200的素数

题目&#xff1a; 判断 101-200 之间有多少个素数&#xff0c;并输出所有素数。 简介&#xff1a; 在本篇博客中&#xff0c;我们将解决一个常见的问题&#xff1a;判断101到200之间的素数&#xff0c;并输出所有素数的列表。我们将给出问题的解析&#xff0c;并提供一个完整…

2023年了要怎么理解原型和原型链

1.prototype和__proto__有什么不可告人的关系&#xff1f; 说道原型对象&#xff0c;那一定绕不开几个概念&#xff1a; prototype&#xff0c;__proto__,constructor。 首先解释一下prototype是什么&#xff0c;原型对象。V8引擎给所有函数内置的一个对象。也就是只要创建的…

瑞丽-伯纳德对流的拉格朗日拟序结构(FTLE场结果对比)

FTLE场&#xff0c;即有限李雅普诺夫指数场是识别拉格朗日拟序结构的一种方法&#xff0c;其主要思路是如下&#xff1a; 1、t时刻在场内均匀布置粒子 2、计算t–>tT时刻后粒子的位置&#xff0c;这里粒子任意时刻的速度有速度场插值得到 3、根据两个时刻的粒子位置计算得…