某考研查询微信小程序爬虫
ZQ 2019-06-20 框架scrapy爬虫
解决某考研查询某小程序jwt权限认证与采集
# 前言
日常采集数据时, 有很多需要登录才能获取的数据, 不能解决权限认证这个问题, 就无法获取到想要采集的数据, 目下流行的认证机制有session, token 与 JWT, 最近写爬虫遇到这个问题, 记录下解决方法
# 爬虫需求
如图: 获取每个高校详情页的上 中 下 三部分类容
# 列表页
# 详情页
# 项目逻辑
- 使用Fiddler抓包, 查看响应数据结构
- 对应字段创建数据库表
- 编写爬虫代码
- 解决权限认证问题
- 解析数据, 保存数据
# 抓包
认证
第一次进小程序是, 一般都会弹出微信授权, 这个也就是服务后端用来登录的接口, 抓包发现返回登录成功的数据, token结构是无疑问后端采集的是 JWT 认证机制, 有了登录接口, 采集就好办了, 而JWT的使用在请求时Headers中带上Authorization参数
列表页
详情页
总结
在请求接口时, 全程携带认证令牌且保证令牌有效, 否则无法获取数据
# 建表
# 爬虫
使用scrapy框架开发
起始函数
详情页函数
写入数据库
下载中间件
这步就是实现携带令牌访问的代码, 需要在配置开启此中间件
加了随机请求头功能, 代理ip也可在此中间件加入
配置文件
配置数据库信息
# 结果
# 输出
# 数据
20分钟采集了1万条数据