mitmproxy

Python爬虫学习笔记8:APP的爬取

走远了吗. 提交于 2021-02-11 12:54:26
说明:本学习笔记主要参考:Python3网络爬虫开发实战一书 常用的抓包软件有WireShark、Charles、Fildder、mitmproxy、AnyProxy等。 原理:通过设置代理的方式将手机处于抓包软件的监听之下,获取APP运行的过程中发生的所有请求及响应,如果请求的URL及参数有规律,用程序模拟爬取即可。如果没有,可以利用mitmdump对接Python脚本直接处理Response,还可以利用APPium 进行自动化爬取控制。 一、Charles 下载地址:https://www.charlesproxy.com/download/ 证书配置:SSL证书是为了通过HTTPS协议,Charles客户端和手机都要同时转有SSL证书。 mac Help-ssl proxying - install charles root certificate 选择始终信任。 设置手机证书配置 先开启Charles代理,proxy-proxy settings 将手机同电脑连在同一个局域网下面。 查看本机IP地址,终端输入:ifconfig 安卓手机如何设置代理参考:https://blog.csdn.net/songzi1228/article/details/89950109 设置好代理后,charles界面会有提示,点击allow即可。 下面就是在手机上安装ssl证书

Save no capture data in mitmweb

三世轮回 提交于 2021-02-11 12:14:20
问题 I'm running mitmproxy on Windows (mitmweb.exe). There is any way to set option not to store captured data? The problem is in memory consumption when mitmproxy is running long time. 回答1: I have not found any solution, so I have wrote a very simple proxy program using https://github.com/justcoding121/Titanium-Web-Proxy 来源: https://stackoverflow.com/questions/53817518/save-no-capture-data-in-mitmweb

How can I switch mitmproxy mode based on attributes of the proxied request

走远了吗. 提交于 2021-02-10 14:51:52
问题 I'm running mitmproxy in upstream mode. In my script I'm inspecting for a header, X-Direct , which indicates that the request should not be sent to the upstream proxy and instead be sent directly to the server. I figured out how to modify the proxy mode on a per-request basis using the next_layer() hook: def next_layer(next_layer): ctx.log.info(f'next_layer = {repr(next_layer)}') if isinstance(next_layer, Http1Layer): next_layer.mode = HTTPMode.regular This hook executes too early and I can't

How can I switch mitmproxy mode based on attributes of the proxied request

放肆的年华 提交于 2021-02-10 14:51:49
问题 I'm running mitmproxy in upstream mode. In my script I'm inspecting for a header, X-Direct , which indicates that the request should not be sent to the upstream proxy and instead be sent directly to the server. I figured out how to modify the proxy mode on a per-request basis using the next_layer() hook: def next_layer(next_layer): ctx.log.info(f'next_layer = {repr(next_layer)}') if isinstance(next_layer, Http1Layer): next_layer.mode = HTTPMode.regular This hook executes too early and I can't

MemoryError: mitmproxy has crashed

随声附和 提交于 2021-01-07 06:20:17
问题 MemoryError: mitmproxy has crashed Jul 16 13:02:40 cubedev-PowerEdge-R330 bash[21256]: MemoryError Jul 16 13:02:40 cubedev-PowerEdge-R330 bash[21256]: mitmproxy has crashed! Jul 16 13:02:40 cubedev-PowerEdge-R330 bash[21256]: Please lodge a bug report at: https://github.com/mitmproxy/mitmproxy Jul 16 13:02:40 cubedev-PowerEdge-R330 bash[21256]: 192.168.50.117:60549: Traceback (most recent call last): Jul 16 13:02:40 cubedev-PowerEdge-R330 bash[21256]: File "/usr/local/lib/python3.6/site

Modify request from Open VPN server

蹲街弑〆低调 提交于 2021-01-07 00:02:26
问题 I'm doing a POC on a product where I need to set up a VPN server and manipulate the request (basically the URL parameters, not the headers/form data). I'll share my findings in this post and the blockers too. Need some advice on the blockers. My setup:- oVPN client -> oVPN server -> Squid Proxy -> Internet | Logstash | Kibana Logstash parses the squid proxy logs (the browsed URLs) and dumps it to ES which is then viewed on kibana. Findings. When my client connects with the VPN server and

那个站在中间的男人,使用Python就能直接操控你的上网请求

我的梦境 提交于 2021-01-02 08:37:29
不知道你有没有听过一个词叫做:MITM, 也就是 man in the middle〔attack〕 ,意思就是中间人***。 比如你在跟你另一半(单身狗,暂时假设你有另一半 )网上聊天的时候,本来你们聊得好好的,哥们聊得挺嗨啊。突然间,小帅b在走进了你们两的网络通讯之间,并且跟你们两同时建立了联系,这时候,你原本要发给你另一半的信息,被我拦截下来了,而这时候我还可以对你要发的数据进行篡改,然后再发给你的另一半。你们两还全然不知,以为就是对方说的话。 这就是中间的人,坏坏,这时候你可能想到了 fiddler 类似的抓包工具,但是这次,小帅b要跟你说一个牛逼的: mitmproxy ,它不止是可以像 fiddler 那样进行一些数据的请求分析,还可以 直接使用 Python 写一些脚本 进行中间操控。 那么,怎么玩呢? 接下来就是: 学习python的正确姿势 正是因为 mitmproxy 这种比较牛逼的请求拦截定制化骚操作,使得它又一不小心成了我们爬虫的一个工具,使用它我们可以更加方便的爬取一些 APP 上面的数据。 安装起来特别简单,pip install 下就可以了,使用如下命令安装: pip install mitmproxy 就是这么一顿下载之后,你就成为了中间的人了,这时候你的电脑就有了 mitmproxy 、 mitmdump 、 mitmweb 这三个牛逼的东西

抖音数据采集教程,初级版

若如初见. 提交于 2020-12-16 09:35:07
这段时间一直在处理数据采集的问题,目前平台数据采集趋于稳定,可以抽出时间来整理一下近期的成果,顺便介绍一些近期用到的技术。本篇文章偏向技术,需要读者有一定的技术基础,主要介绍数据采集过程中用到的神器mitmproxy,以及平台的一些技术设计。以下是数据采集整体的设计,左边是客户机,在里面放置了不同的采集器,采集器发起请求之后,通过mitmproxy访问抖音,等数据回传之后,通过中间的解析器对数据进行解析,最后分门别类的存储到数据库中,为了提升性能,在中间加入了缓存,把采集器和解析器分隔开,两个模块之间工作互不影响,可以最大限度的把数据入库,下图为第一代架构设计,后续会有一篇文章介绍平台架构设计的三代演化史。<br> 准备工作 开始进入数据采集的准备工作,第一步自然是环境搭建,本次我们在windows环境下,采用python3.6.6环境,抓包和代理工具是mitmproxy,也可以使用Fiddler抓包,采用夜神模拟器来模拟安卓运行环境(也可以用真机),这次主要通过手动滑动app来抓取数据,下次介绍采用Appium自动化工具,实现数据采集的全自动(解放双手)。<br>1、安装python3.6.6环境,安装过程可自行百度,需要注意的是,centos7自带的是python2.7,需要升级到python3.6.6环境,升级之前主要先安装ssl模块,否则升级好的版本无法访问https的请求