怎么用Python抓包工具查看周边拼车情况
本篇内容主要讲解“怎么用Python抓包工具查看周边拼车情况”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Python抓包工具查看周边拼车情况”吧!
专业领域包括网站建设、成都网站建设、购物商城网站建设、微信营销、系统平台开发, 与其他网站设计及系统开发公司不同,创新互联建站的整合解决方案结合了帮做网络品牌建设经验和互联网整合营销的理念,并将策略和执行紧密结合,为客户提供全网互联网整合方案。
知己知彼,百战不殆
对于APP类的爬虫,首先想到的就是抓包,macOS下常用的就是Charles和mitmproxy这两款工具了,而mitmproxy由于支持拦截和脚本又深得我爱,用法的话这里就不具体展开介绍了。
启动mitmweb(mitmproxy家那个有页面的兄弟)抓包工具,手机上打开某拼车APP客户端,查看附近订单(已提前认证车主,并切换到车主身份)
对应一下就可以发现,查询附近订单的接口URL就是这个getNearbyBookingRideList,于是我很天真地就拿着这个接口,和抓包数据,就去请求了
结果人家告诉我
{“code”:205,”message”:”签名错误!”}
因为客户端APP有个签名算法,根据POST给服务器的参数计算的,除非我破了人家APP,然后把算法给找出来,想想还是算了,费神费力(主要是我压根不会)!
这个法子行不通,只能换个法子了
神器在手,天下我有
前面提到mitmproxy有个带web界面的兄弟叫mitmweb,其实还有一个支持脚本的兄弟叫mitmdump,写好脚本
import json def response(flow): # 这个别问为啥了,必须这么写 url = 'http://jiaruwoshiurl.com' if url in flow.request.url: text = json.loads(flow.response.content) print(text)
把脚本存为 111.py,然后终端执行命令:
mitmdump -s 111.py -p 8080
剩下要做的就是不断去某拼车APP上划几下,至于数据那块,就交给Dump兄弟就好了
嗯,看到了嘛~想看哪,手指就滑哪,越滑越有!
再接下来就是需要把我们抓到的数据存起来,以备后期使用,这里我用的是MongoDB,虽然也是第一次用,为了方便点,另外写了个插入数据的方法,再在爬虫文件里面调用。
import pymongo def insert_nearbyroute(info): client = pymongo.MongoClient('127.0.0.1', 27017) # 连接数据库 db = client.dida # 选择dida这个数据库 nearbyroute_collection = db.nearby # 选择集合,不存在的话自动创建(对应MySQL的表概念) nearbyroute_collection.update({:info['id']}, info, True) # 插入数据,我这里用的是更新语句,意思是如果id已经存在的话,就不执行该条数据的插入动作,可以有效去重
再到我们数据库看看,已经硕果累累了,不够的话就再多滑几下。
数据抓取的思路大概就是这样,因为没时间捣鼓所以就没上APP自动化,其实可以搞个 模拟器+按键精灵,或者appium,就是太懒了怕麻烦,上班的时候划一划就当运动了
数据展示
时间问题,暂时没做数据分析,不过数据挺干净的,也不需要处理啥 关键字Mongodb、Pandas、Pyecharts 拿了周六杭州跨城顺风车数据结合阿里云的DataV做了个简单的飞线图,会动的那种,点击阅读原文可以查看动图。
到此,相信大家对“怎么用Python抓包工具查看周边拼车情况”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
当前名称:怎么用Python抓包工具查看周边拼车情况
分享地址:http://hbruida.cn/article/jdisdc.html