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