PHP+openlayers实现的一个登陆校园卡网获取消费数据中地点生成个人运动轨迹的小DEMO

模拟登陆的思路是非常的简单的,无非是一个cookie的问题,可是之前我却被困扰了非常之久,原因大概是:我对PHP太不熟悉,我对网络协议太不熟悉,为了快速出作品,而囫囵吞枣似的看了这页书就开始做了,这次以后我要好好回去打基础,而且做了的事情就要有收获,不要为了出作品而出作品。

 

以登陆中南大学的校园卡中心来讲讲模拟登陆的思路。

 

首先我们用Chrome自带的抓包工具看看网站请求和回复的东西分别是什么,这个网站请求和回复一直就只有一个Cookie,可以知道,在我们第一次登上这个网站时,网站会给我们分配一个Cookie,当我们登陆成功后,这个cookie对应的Session就会设置你登陆成功了,这以后这个cookie就可以用来做后续的操作。

当然这个网站还有验证码,用同样的cookie去请求验证码的网址(验证码的网址在抓包工具的返回结果里找找),把验证码图片写出来,验证码识别当然是要依靠人力啊。

再去抓包结果中把POST的内容找到,带上你的账号,密码,验证码,cookie去请求网站,这样之后cookie就可以用了。

 

我们可以用这个cookie开始查询数据了,从抓包结果中发现,查询经过了好多个网页,分析后发现,后一个网页的网址是前一个网页动态生成的,服务器端为不同的查询请求生成有规律的随机的网址来返回请求结果,所以只能带上cookie带上和所需的POST值一个个网页的请求,然后从返回结果中获得动态网址,再请求,再获得,直到获得结果。查询结果在网页中的显示是分页的,所以当然是带上该带的东西继续请求,继续获得结果。

 

获得数据后就处理数据,通过一个索引数组把数据中的地名内容处理为坐标,我用的坐标是OSM这个地图里面的坐标,主要是我在网上找到的画线API背景地图默认是OSM地图,我又不了解那个库,刚脆就用它的默认,OSM是一个很有意思的开源地图,以后矢量化实习可以去组织学生去为开源世界的矢量化工作做贡献才是。

 

然后把坐标数据处理成WKT格式,利用API直接画出来就好了。我用的API的openlayers

 

以上就是某天陈英和我说的想法我简单的实现了一下。总体来说状态还行,只是自己还是没有真正的沉下心来做事。

转载自:https://blog.csdn.net/u012934099/article/details/40687879

You may also like...