重新基于tk老师关于“秋冬季的流感疫苗接种和感染情况”的投票优化了数据展示的页面微博正文
昨天遇到的问题是,想要了解各个地区的投票人数,只能在微博app上查看。我没有这种app抓包的经验,网页版按下F12倒是还比较熟悉。所以我昨天的做法是app哐哐截图然后丢给ai统计一个南北的比例,作为一个“模型”去套实时数据。但这样始终是不太准确的,而且要更新我又得去哐哐截图。
我想着“手机能看”那我脚本也应该有办法能看,于是请教了 Gemini。我问他我要是安装一个安卓模拟器,是不是有办法把里面的数据提取出来。他告诉我可以尝试通过 Fiddler 去抓包。
下载模拟器、下载 Fiddler,一顿配置证书之后似乎能抓到一些东西。但我想要的投票详细数据是灰色的,还有个警告条条。原来是 Fiddler 免费版不支持解析 HTTP/2。后来就把牛刀换了,换成 reqable 继续折腾。还好新的牛刀其实和 Fiddler 也大差不大,很快就跑通了,我确实能拿到我想要的那些 json 数据。
接下来就是笨办法,让 Gemini 写好 reqable 脚本,把 json 都保存到本地磁盘上,然后再用 flask 去分析和展示。仍有不方便的地方就是,更新数据我得进模拟器把每个选项都点一遍。不过也还好,等投票结束就可以固定下来了,对实时性要求也不那么高。
新版本的南北数据和年龄段数据都是爬下来的,这时候我才发现“80后队列”的VE是负值。昨天其实也有群友建议可以把年龄加上,但我不想再去截图,犯懒就拖到今天。