OpenITI 开发日志_0909
昨天 Cosy 师傅在群里提出“对校园集市进行数据过滤”的想法,感觉会是一个不错的方向。包括之前我所参与的WuHub项目(现已并入 OpenJWC)也是一个校园信息整合项目,但是很遗憾只实现对教务处数据的处理,没能实现多源数据整合的设想。希望这个项目能成为对 OpenJWC 的补充或扩展。
校园集市拥有我校极大的用户群体,但是集市上帖子众多且信息散乱,有很多有价值的数据往往被掩盖。本项目目前以收集各课程评价以及数据量化为主要目标。
令牌获取
对于校园集市数据爬取比较困难的一点是,它要求请求头中带有 X-Sc-Od(登录 token),由微信授权后签发给小程序,而这段 token 全程走在微信内部,所以想拿到它就需要让小程序的流量经过我们搭设的中间人代理。目前的解决方案是使用 mitmproxy 作为临时代理获取 token,然后即可长期维持登录态。
请求头构造
校园集市服务器不支持普通浏览器访问,只接受来自微信小程序发来的请求,所以我们需要构造一个请求头达到伪装小程序的效果。以下为请求头格式:
1 | X-Sc-Nd = 20位随机数字 |
其中 secret 密钥由社区开源大佬给出,可翻看开源项目代码查阅
关于API
| 接口 | 方法 | 参数 | 用途 |
|---|---|---|---|
| /thread/v2/list | POST | from_time、hot、with_comment/with_reply=false | 帖子流:最新→旧翻页 |
| /thread/v2/search | POST | wd、cur_page、cate_id(10=实时,20=历史)、range(1d/3d/7d/1m/6m/1y) | 关键词搜索(回溯 1 年历史) |
| /thread/info | POST | form: id | 帖子详情(title/content/img_paths/统计…) |
| /comment/list | POST | id | 评论列表(含 reply_list 楼中楼) |
目前用到的API只有这些,在搜集API的过程中了解到校园集市所能搜索的时间范围最多只有一年,为有价值的评论也会随时间消失感到可惜。
后续的一些想法
Cosy 师傅正在对 OCR 模型进行测试,之后打算使用 ALBERT 模型进行自然语言处理,暂时不知道效果能否达到预期。
Comments