python爬虫实战(3)--爬取某乎热搜

news2024/11/26 7:40:04

1. 分析爬取地址

打开某乎首页,点击热榜
在这里插入图片描述
这个就是我们需要爬取的地址,取到地址某乎/api/v3/feed/topstory/hot-lists/total?limit=50&desktop=true
定义好请求头,从Accept往下的请求头全部复制,转换成json在这里插入图片描述

headers = {
    'Accept': '*/*',
    'Accept-Encoding': 'gzip, deflate',
    'Accept-Language': 'zh-CN,zh;q=0.9',
    'Cookie': '你的请求头中的cookie',
    'Sec-Ch-Ua': 'Not/A)Brand\';v=\'99\', \'Google Chrome\';v=\'115\', \'Chromium\';v=\'115',
    'Sec-Ch-Ua-Mobile': '?0',
    'Sec-Ch-Ua-Platform': 'Windows',
    'Sec-Fetch-Dest': 'empty',
    'Sec-Fetch-Mode': 'cors',
    'Sec-Fetch-Site': 'same-origin',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',
    'X-Ab-Param': '',
    'X-Ab-Pb': 'CgInBxIBAA==',
    'X-Api-Version': '3.0.76',
    'X-Requested-With': 'fetch',
    'X-Zse-93': '101_3_3.0',
    'X-Zse-96': '2.0_6hUp=vt8=9zOcwtPHcLjutT0sL2PhwOPys0v=fvQr7yneBCmMO2zkvXcYfoc5esu'
}

2. 分析请求结果

通过请求可以看出,hot-lists/total?limit=50&desktop=true请求后的返回参数直接是json格式,则不需要单独处理在这里插入图片描述
定义好需要抓取的参数按元素获取即可

    order_list = []  # 热榜排名
    title_list = []  # 热榜标题
    desc_list = []  # 热榜描述
    url_list = []  # 热榜链接
    hot_value_list = []  # 热度值
    answer_count_list = []  # 回答数
    data_list = json_data['data']
    order = 1  # 热榜排名初始值

GET请求接口

    response = requests.get(url=url, headers=headers)
    json_data = response.json()

循环数组json并赋值

        order_list.append(order)
        # 热榜标题
        title = data['target']['title_area']['text']
        print(order, '热榜标题:', title)
        title_list.append(title)
        desc_list.append(data['target']['excerpt_area']['text'])
        url_list.append(data['target']['link']['url'])
        hot_value_list.append(data['target']['metrics_area']['text'])
        answer_count_list.append(data['feed_specific']['answer_count'])
        order += 1```
将结果导出到csv,注意定义一下编码集为utf_8_sig

df = pd.DataFrame(
    {
        '热榜排名': order_list,
        '热榜标题': title_list,
        '热榜链接': url_list,
        '热度值': hot_value_list,
        '回答数': answer_count_list,
        '热榜描述': desc_list,
    }
)
# 保存结果到csv文件
df.to_csv('知乎热榜.csv', index=False, encoding='utf_8_sig')
### 3. 结果验证
![在这里插入图片描述](https://img-blog.csdnimg.cn/eb0b9fdced6241e9bd7d6e941826b389.png)
###  注意:如果请求返回的json格式乱码,调整请求头Accept-Encoding,去掉br后即可

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

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

相关文章

关于2023年8月19日PMI认证考试准考信下载及考场规定等有关事项

各位考生: 为保证参加2023年8月19日PMI项目管理资格认证考试的每位考生都能顺利进入考场参加考试,请完整阅读本通知内容。 一、关于准考信下载 为确保您顺利进入考场参加8月份考试,请及时登录本网站个人系统下载并打印准考信,准考…

Git+Gitee使用分享

GitGitee快速入门 创建仓库 ​ ​ ​ 初始化本地仓库 验证本地git是否安装好 打开cmd窗口,输入git ​ 这样就OK。 Git 全局设置:(只需要设置一次) 这台电脑如果是第一次使用git,就需要这样初始化一下,这样才知道是谁提交到仓库了。 git confi…

威班8月份PMP模拟考试实录(附大D老师考前寄语)

威班8月份模拟考试于2023年8月12日在深圳市福田区兴华大厦成功举办,这次考试依旧是通过线上线下同步的方式,在深圳周边的学员直接到达现场做卷考试,全国各地不能到达现场的其他学员已提前收到考试所需要的文件,与现场学员同时参加…

Python豆瓣爬虫(最简洁的豆瓣250爬虫,随机选择电影)

案例背景 电影才是世界艺术,所以我一直想看完豆瓣250,那么就重新拾起我的爬虫知识。 以前刚学爬虫那啥也不会,python语法都没弄清楚,现在不一样了,能用最为简洁的代码写出爬虫250的代码。 代码实现 导入包&#xff…

全方位详解新型轴向磁通电机技术及其应用

售YASA轴向磁通电机 需要请联:shbinzer 拆车邦 01什么是轴向磁通电机 轴向磁通电机(也称为“盘式电机”),其磁通路径与普通径向电机不同,气隙是平面型的,气隙磁场方向与电机轴线方向平行[1-2]。轴向磁通…

CSGO游戏搬砖操作细节和技巧!

最近整理一份steam搬砖的项目操作细节和详细要求 一、国外Steam游戏装备汇率差项目:这个项目的基本原理是 购买国外Steam游戏平台上的装备,再在国内网易Buff平台上或国际站csgo饰品平台进行售卖。从充值汇率和两个平台的装备价格差中获得利润。 二、需要…

怎么画思维导图?教你几个绘制小妙招

怎么画思维导图?思维导图是一种非常有效的学习和思考工具。它可以帮助人们更好地组织和表达想法,从而更加清晰地思考问题。但是,很多人并不知道如何画思维导图。下面这篇文章,就给大家介绍一些绘制思维导图的小技巧。 今天要给大家…

深度学习|CNN卷积神经网络

CNN卷积神经网络 解决的问题人类的视觉原理原理卷积层——提取特征池化层——数据降维全连接层——输出结果 应用图像处理自然语言处理 解决的问题 在CNN没有出现前,图像对人工智能来说非常难处理。 主要原因: 图像要处理的数据量太大了。图像由像素组…

UITableView自定义TableHeader和TableFooter

UITableView自定义TableHeader和TableFooter 我猜你希望的效果是这样的 我猜你希望的效果是这样的 自定义页眉视图 让我们创建一个文件名 UITableViewHeaderFooterView 的 CustomerHeaderView 子类。 现在让我们创建视图的 Xib 文件并将其命名为 CustomHeaderView。 更改高度标…

STM32CubeIDE(SPI读写Flash)

参考:①正点原子MINI教程②STM32F103配合STM32CubeMX实现SPI读写flash_stm32f103 cube spi_zerfew的博客-CSDN博客 目录 一、理论知识 1、SPI特征 2、SPI框图 3、SPI的工作模式 4、W25Q64 4.1 NOR FLASH 的特性 4.2 W25Q64芯片引脚图 4.3 NOR FLASH 工作时序…

jsp 图书销售系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 图书销售系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0&…

安卓移动应用开发实训室建设方案

一 、系统概述 安卓移动应用开发作为新一代信息技术的重点和促进信息消费的核心产业,已成为我国转变信息服务业的发展新热点:成为信息通信领域发展最快、市场潜力最大的业务领域。互联网尤其是移动互联网,以其巨大的信息交换能力和快速渗透能…

论文阅读:DIN-SQL: Decomposed In-Context Learning of Text-to-SQL withSelf-Correction

NL2SQL是将自然语言转化为SQL的任务,该任务隶属于NLP的子任务,NL2SQL在AIGC时代之前,以seq2seq、BERT等系列的模型在NL2SQL的主流数据集上取得了不错的效果,2022年底,ChatGPT爆火,凭借LLM强大的逻辑推理、上…

气传导耳机怎么样?四款值得入手的气传导耳机推荐

​随着科技的进步,蓝牙耳机越来越受欢迎。类型也越来越多,其中气传导耳机因其不入耳设计,佩戴更舒适,音质更自然,能够提供更为清晰、自然的音质。面对还不知如何挑选气传导耳机的用户,在这里,我…

Firefox(火狐),使用技巧汇总,问题处理

本文目的 说明火狐如何安装在C盘之外的盘,即定制安装路径。如何将同步功能切换到本地服务上。默认是国际服务器。安装在C盘之后如何解决,之前安装的扩展无法自动同步的问题。顺带讲解一下,火狐的一些比较好用的扩展。 安装路径定制 火狐目前…

sentinel的基本使用

在一些互联网项目中高并发的场景很多&#xff0c;瞬间流量很大&#xff0c;会导致我们服务不可用。 sentinel则可以保证我们服务的正常运行&#xff0c;提供限流、熔断、降级等方法来实现 一.限流&#xff1a; 1.导入坐标 <dependency><groupId>com.alibaba.c…

行为型(一) - 观察者模式

一、概念 观察者模式&#xff08;Observer Pattern&#xff09;&#xff1a;在对象之间定义一个一对多的依赖&#xff0c;当一个对象状态改变的时候&#xff0c;所有依赖的对象都会自动收到通知。 二、实现 这里举个电视剧订阅的例子&#xff0c;比如琅琊榜&#xff0c;我们…

基于学习交流社区的自动化测试实现

一 项目介绍 项目名称 项目展示链接&#xff1a; 学习交流社区 项目介绍 项目介绍&#xff1a; 学习交流社区是一个基于Spring的前后端分离的在线论坛系统。使用了MySQL数据库来存储相关信息&#xff0c;项目完成后使用Xshell将其部署到云服务器上。 前端页面&#xff1a; 前端…

让 exoplayer2 支持播放 ftp ( 扩展 exoplayer 支持 ftp 协议 ) 的两种方式

exoplayer 是安卓开源播放器组件库&#xff0c;由谷歌开发维护。它提供了一个可高度扩展的音视频播放框架&#xff0c;支持许多媒体格式与高级媒体功能&#xff0c;比如 adaptive streaming&#xff0c;DRM&#xff0c;以及安卓 media session 集成。 但是不支持 ftp &#xf…

罗德与施瓦茨频谱分析仪RSFSUP50

FSUP50 R&S FSUP50 信号源分析仪&#xff0c;20Hz到50GHz 壹捌叁贰零玖壹捌陆伍叁 R&S FSUP 是一款测量功能丰富、高度灵活的相位噪声测试仪&#xff0c;它兼具***信号和频谱分析仪及单纯相位噪声测试仪两者的功能。 主要特点 频率范围高达 8 GHz、26.5 GHz 或 50…