用Python抓包工具查看周边拼车情况

发表于:2023-5-29 09:56

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:I'm_江河湖海    来源:博客园

  说起Python爬虫,很多人第一个反应可能会是Scrapy或者Pyspider,但是今天文章里用到是Python下一个叫Mitmproxy的抓包工具,对付一些非常规的数据获取还是很有效的。
  不过凡事都是有利有弊,一来麻烦,二来呢不会自己动,还得手动(或者按键精灵也可以啊)。
  自从滴滴的拼车业务全国下线之后,一直专注拼车的某拼车APP在背后默默替老大哥照顾着那些可怜的乘客。上周五下班的时候,本来想用某拼车APP搭个顺风车回家,没想到下班高峰期的时候,某拼车APP居然挂了,过了十几分钟才缓过来,心里好奇,就想爬一下某拼车APP的数据,看看周边上下班拼车的情况。
  知己知彼,百战不殆
  对于APP类的爬虫,首先想到的就是抓包,macOS下常用的就是Charles和mitmproxy这两款工具了,而mitmproxy由于支持拦截和脚本又深得我爱,用法的话这里就不具体展开介绍了。
  启动mitmweb(mitmproxy家那个有页面的兄弟)抓包工具,手机上打开某拼车APP客户端,查看附近订单(已提前认证车主,并切换到车主身份)。
  对应一下就可以发现,查询附近订单的接口URL就是这个getNearbyBookingRideList,于是我很天真地就拿着这个接口,和抓包数据,就去请求了。
  结果人家告诉我:
  {“code”:205,”message”:”签名错误!”}
  因为客户端APP有个签名算法,根据POST给服务器的参数计算的,除非我破了人家APP,然后把算法给找出来,想想还是算了,费神费力(主要是我压根不会)!
  这个法子行不通,只能换个法子了。
  神器在手,天下我有。
  前面提到mitmproxy有个带web界面的兄弟叫mitmweb,其实还有一个支持脚本的兄弟叫mitmdump,写好脚本。
  把脚本存为 111.py,然后终端执行命令:
  mitmdump -s 111.py -p 8080
  剩下要做的就是不断去某拼车APP上划几下,至于数据那块,就交给Dump兄弟就好了
  嗯,看到了嘛~想看哪,手指就滑哪,越滑越有!
  再接下来就是需要把我们抓到的数据存起来,以备后期使用,这里我用的是Mongodb,虽然也是第一次用,为了方便点,另外写了个插入数据的方法,再在爬虫文件里面调用。
  再到我们数据库看看,已经硕果累累了,不够的话就再多滑几下。
  数据抓取的思路大概就是这样,因为没时间捣鼓所以就没上APP自动化,其实可以搞个 模拟器+按键精灵,或者appium,就是太懒了怕麻烦,上班的时候划一划就当运动了。
  数据展示
  时间问题,暂时没做数据分析,不过数据挺干净的,也不需要处理啥
  关键字Mongodb、Pandas、Pyecharts
  拿了周六杭州跨城顺风车数据结合阿里云的DataV做了个简单的飞线图,会动的那种,点击阅读原文可以查看动图。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号