mitmproxy抓取pc接口及数据处理

前边已经写好了一个请求对象和返回对象,但是大家是否发现,即使我们通过一系列处理之后,好像还是没有得到我们想要的,我们现在仅仅是说吧这个东西运用于监听或者说抓包,也就是在我们的测试过程中,而且测试过程中更多的是用于我们内部的http或者说其他移动端,现在想测试我们web端的接口行不行呢,答案是,当然不行的,因为没有设置代理,那么怎么在web端设置代理呢,这里就需要简单进行一个设置

在这里插入图片描述

其实这里就可以抓取到数据了,但是肯定告诉你不安全,安装个证书即可,浏览器mitm.it,安装windows证书,一顿下一步,密码为空,然后就会出现下图,操作浏览器,例如百度

在这里插入图片描述
在这里插入图片描述
各种八卦出现,抓取pc接口成功,这时候整体就已经能都串联起来了,不过还是存在一定的问题,如果测接口时,我就想抓某个url的地址,因为我在测接口或者调试的时候不可能只有url,特别是浏览器会有很多其他的东西存在,咋整?

可见,上边我们已经拿到了request的url,那么我们可不可以使用与response的url呢,也就是说我下载拿request的url无外乎我们调试的时候request——url下的响应数据,更新代码

from mitmproxy import http
class GetData(object):
    def request(self,flow):
        request_data = flow.request
        self.request_url = request_data.url
        request_pr = request_data.query
        request_form = request_data.urlencoded_form
        print('url------------------>',self.request_url)
        print('pr--------------->',request_pr)
        print('form---------------->',request_form)

    def response(self,flow):
        if 'meituan' in self.request_url:
            response_data = flow.response
            response_header = response_data.headers
            content_type = response_header['Content-Type']
            if 'image' in content_type:
                print('这里返回的是图片')
            elif 'application/json' in content_type:
                print('content_type---------------->', content_type)
                print('code------------>', response_data.status_code)
                print('res_data-------------------->', response_data.text)
            else:
                print('格式非预期')


但是会发现,更改了代码后无法打印我们的数据信息
在这里插入图片描述

在我们的proxy运行机制中,如果是我们的类方法去运行,有一个条件,这时候你去运行会变成这个样子addons = [GetData()]把GetData拿过来实例化

在这里插入图片描述
这里就只会打印美团的数据,不会打印其他,完成了数据的过滤

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值