利用Python爬虫获取某乎热榜

如今,某乎必须要登录才能查看相关话题内容,给我们的日常造成了极大的不便,今天我就教大家如何利用简单的代码,绕开登录限制。

准备工作

  1. 配置好python运行环境,推荐 pycharm。
  2. 复制下面的源代码,运行,大功告成。

源代码

import requestsclass Zhihu:"""知乎热榜"""def __init__(self):self.hot_lists_api = 'https://api.zhihu.com/topstory/hot-lists/total'  # 热榜apiself.recommend_lists_api = 'https://api.zhihu.com/topstory/recommend'  # 推荐apiself.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36'}self.hot = self.get_hot_lists()  # 热榜未处理数据self.recommend = self.get_recommend_lists()  # 推荐未处理数据self.hot_data = self.wash_hot_lists()  # 热榜处理后数据self.recommend_data = self.wash_recommend_lists()  # 推荐处理后数据def get_hot_lists(self):"""获取知乎热榜:return: json"""params = {'limit': '10','is_browser_model': '0'}response = requests.get(url=self.hot_lists_api, headers=self.headers, params=params)return response.json()def get_recommend_lists(self):"""获取随机推荐:return:"""params = {"action": "down","ad_interval": "-10","after_id": '1',  # TODO:"page_number": '1',  # TODO:"session_token": "99872c210b53364be1ede4bf459e8005", }response = requests.get(url=self.recommend_lists_api, headers=self.headers, params=params)return response.json()def wash_hot_lists(self):"""清洗热榜数据:return:['[title](url)',....]"""hot_lists = []for data in self.hot['data']:title = data['target']['title']url = data['target']['url'].replace('api.zhihu.com/questions', 'zhihu.com/question')hot_lists.append(f'[{title}]({url})')return hot_listsdef wash_recommend_lists(self):"""清洗推荐数据:return:"""hot_lists = []for data in self.recommend['data']:try:title = data['target']['question']['title']url = data['target']['question']['url'].replace('api.zhihu.com/questions', 'zhihu.com/question')except KeyError:title = data['target']['title']url = data['target']['url'].replace('api.zhihu.com/questions', 'zhihu.com/question')hot_lists.append(f'[{title}]({url})')return hot_listszhihu = Zhihu()

使用教程

  • 要获取当前知乎热榜数据,在源代码末尾添加下面这行代码,然后运行程序即可。
    print(zhihu.hot_data)
  • 要想获取随机推荐话题,在源代码末尾添加下面这行代码,然后运行程序即可。
    print(zhihu.recommend_data)

运行结果展示

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

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

相关文章

LNMP架构部署Discuz论坛系统

文章目录 LNMP架构&部署Discuz论坛系统部署LNMP架构环境前期准备安装Nginx安装mariadb安装php配置nginx 部署Discuz论坛系统下载Discuz论坛系统代码包部署Discuz论坛系统配置虚拟主机安装Discuz论坛访问站点尝试注册一个账号 LNMP架构&部署Discuz论坛系统 部署LNMP架构…

试着写几个opencv的程序

一、认识opencv OpenCV(Open Source Computer Vision Library)是一个开源计算机视觉库,旨在提供丰富的图像处理和计算机视觉功能,以帮助开发者构建视觉应用程序。OpenCV最初由英特尔开发,现在由社区维护和支持。它支持…

Day5力扣打卡

打卡记录 对角线上不同值的数量差(矩阵对角线遍历 前缀和) 链接 思路:由于任意行 i 与 列 j,满足对角线上 i j t 的关系,t 的范围为 [1 - n, m - 1],设 s t n,可以得到 s的范围为 [1, n …

计算机网络学习笔记(四):网络层(待更新)

目录 4.1 IP地址、子网划分、合并超网 4.1.1 IP地址、子网掩码、网关 4.1.2 IP地址的编址方法1:IP地址分类(A~E类地址、保留的IP地址) 4.1.4 IP地址的编址方法2:子网划分(等长、变长) 4.1.5 IP地址的编…

Adobe 推出 Photoshop Elements 2024 新版

🦉 AI新闻 🚀 Adobe 推出 Photoshop Elements 2024 新版 摘要:Adobe 最新发布 Photoshop Elements 2024 版本,新增引入 AI 功能,提供匹配颜色、创建照片卷、一键选择照片天空或背景等新功能,界面也进行了优化更新。本次发布重点加强了 AI 支持,简化复杂…

打卡go学习第一天

8.1 下面展示一些 代码。 package mainimport ("fmt""net""os""time" )type Clock struct {Name stringAddr string } func main() {clocks : []Clock{{Name: "New York", Addr: "localhost:8000"…

spring cloud Eureka集群模式搭建(IDEA中运行)

spring cloud Eureka集群模式搭建(IDEA中运行) 新建springboot 工程工程整体目录配置文件IDEA中部署以jar包形式启动总结 新建springboot 工程 新建一个springboot 工程,命名为:eureka_server。 其中pom.xml文件为: …

OnlyOffice documentType类型值

参考官网说明: https://api.onlyoffice.com/editors/config/#documentType 其值为:word | cell | slide

SpringCloud: feign整合sentinel实现降级

一、加依赖&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache…

060:mapboxGL点击某处,通过flyTo,以动画的形式聚焦到此点

第060个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中点击某处,通过flyto,以动画的形式聚焦到此点。这里用到了flyTo的方法,里面可以设置bearing,zoom,pitch等众多的属性内容。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示…

RabbitMQ运行机制和通讯过程介绍

文章目录 1.RabbitMQ 环境搭建2.RabbitMQ简介3.RabbitMQ的优势&#xff1a;4. rabbitmq服务介绍4.1 rabbitmq关键词说明4.2 消息队列运行机制4.3 exchange类型 5.wireshark抓包查看RabbitMQ通讯过程 1.RabbitMQ 环境搭建 参考我的另一篇&#xff1a;RabbitMQ安装及使用教程&am…

SystemVerilog Assertions应用指南 Chapter1.20“ $past”构造

1.20“ $past”构造 SVA提供了一个内嵌的系统任务“$past”,它可以得到信号在几个时钟周期之前的值。在默认情况下,它提供信号在前一个时钟周期的值。结构的基本语法如下 $past (signal_name ,number of clock cycles) 这个任务能够有效地验证设计到达当前时钟周期的状态所采用…

购药不烦恼:线上购药小程序的快捷方式

在这个数字化时代&#xff0c;线上购药小程序的快捷方式正在改变着我们购药的方式。本文将介绍如何通过使用Python和Flask框架创建一个简单的线上购药小程序的原型&#xff0c;为用户提供购药的便利和快捷体验。 安装和设置 首先&#xff0c;确保你已经安装了Python和Flask。…

AUTOSAR AP 硬核知识点梳理(2)— 架构详解

一 AUTOSAR 平台逻辑体系结构 图示逻辑体系结构描述了平台是如何组成的,有哪些模块,模块之间的接口是如何工作的。 经典平台具有分层的软件体系结构。定义明确的抽象层,每个抽象层都有精确定义的角色和接口。 对于应用程序,我们需要考虑使用的软件组件,希望它们是可重用的…

墨迹天气商业版UTF-8模板,Discuz3.4灰白色风格(带教程)

1.版本支持&#xff1a;Discuzx3.4版本&#xff0c;Discuzx3.3版本&#xff0c;DiscuzX3.2版本。包括网站首页&#xff0c;论坛首页&#xff0c;论坛列表页&#xff0c;论坛内容页&#xff0c;论坛瀑布流,资讯列表页(支持多个)&#xff0c;产品列表页(支持多个)&#xff0c;关于…

微信小程序之首页-后台交互及WXS的使用

目录 前言 一. 前后台数据交互及封装request 1.准备后台 1.1 配置数据源 1.2 部分后台获取数据方法编写 2.准备前端 2.1封装Request 2.2 前端JS方法编写 2.3 前端页面展示index.wxml 二.WXS的使用 1.简介 2.WXS优化OA系统 2.1 使用及定义 2.2 导入要使用的项目 2.…

如何理解TCP/IP协议?

一、是什么 TCP/IP&#xff0c;传输控制协议/网际协议&#xff0c;是指能够在多个不同网络间实现信息传输的协议簇 TCP&#xff08;传输控制协议&#xff09; 一种面向连接的、可靠的、基于字节流的传输层通信协议 IP&#xff08;网际协议&#xff09; 用于封包交换数据网…

分类预测 | MATLAB实现基于BiGRU-AdaBoost双向门控循环单元结合AdaBoost多输入分类预测

分类预测 | MATLAB实现基于BiGRU-AdaBoost双向门控循环单元结合AdaBoost多输入分类预测 目录 分类预测 | MATLAB实现基于BiGRU-AdaBoost双向门控循环单元结合AdaBoost多输入分类预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现基于BiGRU-AdaBoos…

nodejs+vue 校园通勤车-计算机毕业设计

在此情况下开发一款校园通勤车可视化系统小程序&#xff0c;于是乎变得非常合乎时宜。 经过网上调查和搜集数据,我们可以发现校园通勤车可视化管理方面的小程序在并不是相当普及,同时在校园通勤车可视化管理方面的可以有许多改进。目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪…

LiveQing视频点播流媒体RTMP推流服务功能-支持视频点播分屏大屏展示视频轮巡分组播放RMP推流直播大屏展示

LiveQing支持视频点播分屏大屏展示视频轮播分组播放RMP推流直播大屏展示 1、分屏展示2、轮巡播放3、RTMP推流视频直播和点播流媒体服务 1、分屏展示 LiveQing支持将视频点播、鉴权直播&#xff0c;拉转直播视频流&#xff0c;进行分屏播放。 2、轮巡播放 3、RTMP推流视频直播和…