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

news/2024/10/18 0:21:22/

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": "www.zhihu.com","Referer": "https://www.zhihu.com/hot","Cookie": "_xsrf=Pd0NpG6J8kZdHtzBVnNyQP1g0rO7NKeg; _zap=d7f27b9f-4fe3-4ef4-9376-df278af16940;"
}
  1. 定义一个请求接口,即数据地址
url = "https://www.zhihu.com/api/v3/feed/topstory/hot-lists/total?limit=50&desktop=true"
  1. 发送请求,由于接口返回的是JSON格式,所以这里一步到位,将响应结果也转成JSON格式。
json = requests.get(url, headers=browse_header).json()
  1. 提取热搜数据列表。
# 热搜列表
content_list = res['data']
  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(content['target']['url'].replace('api', 'www').replace('questions', 'question'))

完整代码:

import requests
import pandas as pdbrowse_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": "www.zhihu.com","Referer": "https://www.zhihu.com/hot","Cookie": "_xsrf=Pd0NpG6J8kZdHtzBVnNyQP1g0rO7NKeg; _zap=d7f27b9f-4fe3-4ef4-9376-df278af16940;"
}url = "https://www.zhihu.com/api/v3/feed/topstory/hot-lists/total?limit=50&desktop=true"res = requests.get(url, headers=browse_header).json()
# 热搜列表
content_list = res['data']
title_list = []
order_list = []
score_list = []
desc_list = []
url_list = []
index = 0
for content in content_list:index += 1order_list.append(index)title_list.append(content['target']['title'])score_list.append(content['detail_text'])desc_list.append(content['target']['excerpt'])url_list.append(content['target']['url'].replace('api', 'www').replace('questions', 'question'))df = pd.DataFrame({'热搜标题': title_list,'热搜排名': order_list,'热搜热度': score_list,'描述': desc_list,'链接地址': url_list
})
df.to_excel('知乎热搜榜.xlsx', index=False)  # 保存结果数据

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

三、总结

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


http://www.ppmy.cn/news/429058.html

相关文章

模糊测试不“模糊”,高效发掘未知漏洞与 0day 攻击

近日,在「DevSecOps软件安全开发实践」课程上,极狐(GitLab) 高级测试工程师衡韬、极狐(GitLab) 高级后端开发工程师田鲁,分享了模糊测试的概念、必要性和在极狐GitLab 上的实践。 以下内容整理自本次直播,你也可以点击&#x1f44…

网络流量监控与分析软件

参考: https://www.cisco.com/c/en/us/products/ios-nx-os-software/ios-netflow/index.html https://zhuanlan.zhihu.com/p/87325697 ntopng,NetFlow、sFlow, NetFlow Analyzer

windows - 网络流量监控工具

由于需要在本地的流量监控工具 1、DUMeterPortable 可以对当前的pc网络的上下行做记录和统计,可以统计每天的流量控制,程序实时记录 2、BW 功能比较强大,但是监控比较烦人,如果是查看流量的话,这个软件没有必要 3、…

一款免费的网络流量实时监控软件

一款免费的网络流量实时监控软件 来源版块: 网络安全 压缩包内文件格式: 可执行文件 附件来源: 互联网 运行平台: Windows平台 是否经本人验证: 是 附件性质: 免费 详细说明: ySoft Network Monitor 是一款免费的网络流量实时监控软件,它能够将计算机上的各种网络…

软件实现局域网流量控制

有朋友问我怎样限制和他共享上网的其他人的带宽,我总是觉得这是不可能的,除非你有路由器的控制权,但是现在家用的低端路由器一般是没有流量控制的功能的。 根据本人凡事都百度的原则,我带着一线希望上网搜索了一下,发…

流量监控软件networx使用

1. 简介 Networx是一个用于流量监控与统计的工具,可以生成流量统计报表以及查看指定应用程序的流量情况。安装界面是英文的,安装后可以选择中文。下载地址:https://www.softperfect.com/download/ https://www.softperfect.com/download/ 2…

分享几款分析流量的工具

常用流量分析工具 除非要查看非常细微的东西,一般情况下SEO人员并不会去看原始日志文件。通常网站流量分析要借助软件。 流量统计和分析软件一般分为两种。第一种是基于在页面上插入统计代码。SEO站长在需要统计的所有网页上(通常是整个网站所有页面)插进一段统计代…

iftop---实时流量监控工具

一、iftop是什么? iftop是类似于top的实时流量监控工具。 官方网站:http://www.ex-parrot.com/~pdw/iftop/ 二、iftop有什么用? iftop可以用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等&…