【萌新写爬虫】爬知乎关注信息
这个例子是【爬虫工程师课程】中的一个实战,这里简单介绍下。
记得以前说过,爬虫有三步:获取源码、解析源码、储存数据。首先看看知乎的数据在哪里。
一、分析网页请求
以轮子哥为例,vczh,当我们禁用JS加载后,网页只有3条数据(属于lazy load),那么需要寻找数据
老规矩,打开开发者工具,找到翻页相关,数据都在这里
https://www.zhihu.com/api/v4/members/excited-vczh/followees?include=data%5B*%5D.answer_count%2Carticles_count%2Cgender%2Cfollower_count%2Cis_followed%2Cis_following%2Cbadge%5B%3F(type%3Dbest_answerer)%5D.topics&offset=40&limit=20
去除无用参数,是这样
offset 后面的数值就是翻页了。但是直接使用requests,会返回错误,我们把请求头拿出来看看
知乎的多了 authorization 和 X-UDID ,进过测试 authorization 是必要参数,所以构造就很简单了。
未登录和已登录情况下的 authorization 数值不同,进过多次错误,我发现必须使用已经登录下的 authorization 。
写这个爬虫我错误了无数次~
二、翻页构造
弄清楚请求就很简单了,翻页使用format函数
三、数据储存
我们打开这些数据,发现是json,那么就很简单,可以直接保存,不需要对网页数据进行解析。
然后可以对数据可视化
咳咳,为什么我关注了这么多男性
更有趣的是,打开轮子哥的粉丝列表,两者对比
关注了:
https://www.zhihu.com/api/v4/members/excited-vczh/followees?offset=20&limit=20
关注者:
https://www.zhihu.com/api/v4/members/excited-vczh/followers?offset=20&limit=20
有趣吧,通过这种方法,可以达到对知乎用户的爬取,前人说过很多,这里就不说了。
希望本文可以帮助你,像这种加载方式还有微博、头条。很久以前,萌新曾经提过一个问题,就是头条爬取,现在看来就很简单了。
- 胖虎科技获1亿元融资 域名“我爱胖虎”创意十足!
- 高挺:区块链在金融领域的三个应用方向
- 条码支付迎来分级限额制 支付宝、微信纷纷响应
- 关键基础设施威胁预警,HDD声波攻击可致蓝屏
- 集成学习之随机森林通俗理解
- 深度学习CNN眼中的图片是什么样的
- 第七节 关联映射之多对多
- 词向量fasttext,CNN is All,强化学习,自回归生成模型,可视化神经网络损失函数
- 比特币开始执行比特币支付协议发票减少钱包的支持
- Spring编程式事务处理不当引起的连接泄露事件
- Genaro在硅谷区块链孵化器开幕式上提出愿景
- 支付宝微信回应央行新规:继续探索条码支付新技术!
- 一个猎头的Python学习笔记01
- XMT.com超200万被区块链终端交易
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- SSM 单体框架 - 教育平台后台管理系统:视频讲解
- Day19.python时间和日期
- Kafka重要知识点之消费组概念
- Day15.异常的处理
- 「翻译」在生物信息学中使用 GNU-Parallel
- Kafka运维小贴士 | Kafka 消息监控
- MySQL慢查询优化 | 联结原理
- MySQL千万大表优化实践
- GitHub 标星过万!计算机与网络知识总结电子书下载!
- 盘一盘,那些提效/创意的 vscode 插件
- 基于jenkins实现手动拉取码云代码,实现半自动化部署
- so easy!网页骨架屏自动生成方案(dps)
- 深夜,我偷听到程序员要对session下手……
- CAM 系列论文阅读总结
- kafka客户端指标上报Prometheus方案(已开源)