python 赚钱 知乎_爬虫实战:抓取知乎问题 “大学生如何赚到一万元”

最近对赚钱的话题很感兴趣,在知乎上关注了很多“赚钱”相关的问题,高质量的有不少,但是夹杂着私货的也不少。不过知乎的数据比较全,我们完全可以用来做文本分析。

爬虫的原理我就不细讲了,如果大家对爬虫的原理和相关库不甚了解,又想快速入门,不妨看看我们这门课。

待爬网址

问题:如何在大学赚到一万元?

大学里面学费加一年开销最少就是10000元,所以如何赚到10000 链接 https://www.zhihu.com/question/34011097

分析请求

因为我们知道知乎的响应数据都是 json 型网站,所以我们想找到json对应的链接规律。F12键打开开发者工具,选中XHR,不停地往下滑动页面,开发者工具Network会不停的闪过很多链接。

经过排查我们发现这个链接很特殊,点击进去详情如下

对应的数据是json格式

里面果然是用户的回答数据

现在我们将找到的网址复制下来分析分析

我们发现网址中有 34011097 和 offset 两个参数是可以调整的,分别代表 话题id 和 回答的id 。我们将上面的网址整理一下,设计成网址模板base_url

伪装请求

我们还要注意的一点是写爬虫一般是需要伪装请求头headers,而在知乎这种网站,我们可能还需要cookies。我新建了一个 settings.py 文件,用来存放cookies、headers、网址模板base url和question id

数据存储

接下来我们新建 zhihu.py 用于设计爬虫逻辑,因为知乎的数据都是json格式,相对于 html 而言json的数据更有层次性更加的干净。为了保证后续数据分析的可扩展性,我们尽量保存原始。所以这里用到了jsonlines库用于存储json数据(以行的方式存储每个json),如果不熟悉可以把 jsonlines库:高效率的保存多个python 对象 这篇文章收藏起来。

知乎爬虫代码

在 zhihu.py 文件中

程序运行

读取抓取json数据

这里使用jsonlines库,该库以行的方式读取,得到的是可迭代对象。如果不熟悉可以把 jsonlines库:高效率的保存多个python对象 这篇文章收藏起来。将其转化为dataframe类型,这样我们就可以用pandas库进行读取

两小时视频课程

精选文章

后台回复 20190228 ,得本教程项目代码。

原创不易,如果觉得内容不错,记得AD、转发、好看

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

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

相关文章

SpringBoot:解决日期转换问题和日期展示问题

本次我们解决问题:日期展示问题(返回的json中日期的格式是:“birthday”:“1988-08-07T15:00:00.0000000”);需要转化成指定的格式(年月日时分秒格式) 1、问题如 2、解决方案 在配置中加入 #时间戳统一转换 spring.jackson.date-formatyyy…

13 - java包装类

变量的包装类 八种数据类型 八种包装类 基础数据类型引用数据类型byteByteshortShortintIntegerlongLongfloatFlatdoubleDoublecharCharacterbooleanBoolean 自动装箱 (jdk1.5就有了) Integer i 0; > Integer i new Integer("0"); //> 基础数据类型会自动…

日期格式化时注解@DateTimeFormat无效的问题分析

日期格式化时注解DateTimeFormat无效的问题分析 背景 有时候我们在写接口时,需要把前台传来的日期String类型转为Date类型 这时我们可能会用到DateTimeFormat注解 在请求数据为非JSON格式时,这个注解是没有问题的,可用的; 但…

12 - java 类加载内存图

栈是线程私有的、堆是线程公有的如果不加 static 就是堆里面的属性,加了static 就是元数据区的属性

source code怎么用_code-builder代码生成器

背景本来code-builder是专门为MyBatis Enhance来编写的一块代码生成器code-builder可以用来做什么?code-builder是一款代码生成maven mojo插件,通过简单的配置就可以完成数据库内Table转换Entity或者其他实体类,想怎么生成完全根据你的个人业…

@Transactional注解的失效场景

Transactional注解的失效场景 引言 Transactional 注解相信大家并不陌生,平时开发中很常用的一个注解,它能保证方法内多个数据库操作要么同时成功、要么同时失败。使用Transactional注解时需要注意许多的细节,不然你会发现Transactional总是…

11 - java构造方法

java构造方法 构造方法 构造方法名与类名一致没有返回值使用 new 其实是在调用构造方法如果一个类里面没有构造方法,会自动创建一个空的构造方法构造方法能传参数,在构造期间就把对象的值赋好一旦有了新的有参数的构造方法,空的构造函数就不…

python无限循环的关键字_零基础学python-12.2 关键字pass,else,break,continue

关键字pass,else,break,continuepass:不做任何事情,只占位else:当正常跳出循环时执行break:满足某些条件跳出循环,不再执行任何东西continue:满足某些条件跳出本次循环,然后继续执行循环里面的东…

python中迭代器有哪些_Python迭代器:什么是Python中的迭代器以及如何使用它?

Python编程语言已经扩展了创新的每一个方面,包括机器学习、数据科学、人工智能等,这些概念是Python作为编程语言取得成功的基石。在本文中,我们将通过以下概念来理解PythoPython编程语言已经扩展了创新的每一个方面,包括机器学习、…

Spring 事务方法与非事务方法相互调用 @Transactional 注解失效不回滚?

写这篇文章的初衷呢就是最近遇到了一个Spring事务的大坑。与其说是坑,还不如说是自己事务这块儿太薄弱导致的(自嘲下)。 项目环境 Spring Boot 下面开始问题描述,发生的过程有点长,想直接看方案的直接跳过哦~&#x…

10 - java 权限修饰符

java权限修饰符 作用域当前类同package子孙类其他packagepublic√√√√protected√√√friendly(defult)√√private√ 为什么要时候用权限修饰符? 对自己而言,保护代码不受污染对别人而言,给别人一个干净的类

vue后端必须接口吗_前后端分离模式,后端说开发完才能给接口文档,合理吗

背景:汇总了下老王在其他平台的原创回复,欢迎关注老王原创公众号【软件老王】,关注不迷路。一、后端开发完接口才给出接口文档,合理吗?本人所在的项目组做项目过程中,后端不会先给出接口文档,而…

JAVA那点破事,并发、IO模型、集合、线程池、死锁、非阻塞、AQS...

JDK、JRE、JVM 三者有什么关系? 答案: JDK(全称 Java Development Kit),Java开发工具包,能独立创建、编译、运行程序。 JDK JRE java开发工具(javac.exe/java.exe/jar.exe) JRE(…

09 - java 包命名规范

java包命名规范 – 域名倒置 Java的包名都有小写单词组成,类名首字母大写;包的路径符合所开发的 系统模块的 定义,比如生产对生产,物资对物资,基础类对基础类。以便看了包名就明白是哪个模块,从而直接到对…

python memoryview_memoryview的用法

本来第一次看《流畅的python》觉得这部分没用,就跳过去,后面又出现,回头看还是一知半解,查了诸多资料,好像有一点明白了,立下帖子。1、memoryviewmemoryview()函数返回给定参数的内存查看对象(memory view)…

07 - java 方法里面的 return

Java 方法里面的 return return 之函数返回值 public static int sum(a, b) {return a b; }return 之结束方法 Scanner sc new Scanner(System.in): int num sc.nextInt();if (num 5) {return;System.out.println("哈哈哈,我是不会执行的"); // 函数遇…

世外桃源六python_六年匠心 桃花源记6月1日全民狂欢

六年匠心独运,烂漫之约!深圳淘乐携手并肩云畅游戏倾情打造出的人民良知连击手游《桃花源记》昨天宣布告一段落为期一周的小彩蛋检测!小彩蛋检测打开至今,诸位少主呼叫队友飘缈世外桃源的情绪高涨,网络服务器因而一度出現了满员的隆重开幕。而…

PTA 最小生成树-kruskal

7-92 最小生成树-kruskal 分数 10 全屏浏览题目 作者 任唯 单位 河北农业大学 题目给出一个无向连通图,要求求出其最小生成树的权值。 温馨提示:本题请使用kruskal最小生成树算法。 输入格式: 输出格式: 输出一个整数表示最小生成树的各边的长度之和。…

06 - java 方法

Java 方法 一个方法可以重复使用很多次,减少不必要的冗余,以及重复很多次不必要的操作让整个程序看起来模块化 public static void main (String[] args) {Scanner sc new Scanner(System.in);int num sc.nextInt();switch (num) {case 1: int[] arr…

Spring系列:父子容器详解

又一次被面试官带到坑里面了。 面试官:springmvc用过么? 我:用过啊,经常用呢 面试官:springmvc中为什么需要用父子容器? 我:嗯。。。没听明白你说的什么。 面试官:就是controll…