• 使用Fiddler复制并转发http响应数据


    1.安装Fiddler

    2.编辑FiddlerScript,增加拦截判断

    Goto OnBeforeResponse,跳转到指定函数,在函数中添加拦截某些http代码,如下。

            if (oSession.fullUrl.Contains("/api/review-opinion/list")) {
                // FiddlerApplication.Log.LogString(oSession.GetResponseBodyAsString())
                var _xhr = new ActiveXObject('Microsoft.XMLHTTP');
                var url =  'http://localhost:5000/save';
                _xhr.onreadystatechange = function() {}
                _xhr.open('POST', url, true);
                _xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8");
                _xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
                _xhr.send( oSession.GetResponseBodyAsString());
            }
    

    拦截后,通过http请求,将响应数据转发给另外一个服务,专门负责数据保存。

    3.编写数据接受服务

    使用Flask搭建服务,新建server.py文件:

    from flask import Flask, request
    
    app = Flask(__name__)
    
    @app.route('/')
    def hello_world():
        return 'hello world 1'
    
    
    @app.route('/save', methods=['POST'])
    def register():
        print(request.headers)
        rep = str(request.stream.read(), encoding="utf-8")
        print(rep)
        import uuid
        id = str(uuid.uuid4())
        file = open('data/review-' + id + '.json', 'w', encoding='utf-8')
        file.write(rep)
        file.close()
        return 'welcome'
    
    
    if __name__ == '__main__':
        app.run(port=5000, debug=True)
    
    

    启动服务:
    python server.py

    4.捕获请求

    Fiddler中按F12或者点击File-Capture Traffic,刷新浏览器,触发请求。查看数据保存目录,已经存入多个json文件。

    5.解析数据

    使用python读取每个json文件,使用jsonpath库解析,后面使用pandas将数据整理、过滤、统计。

  • 相关阅读:
    继承
    面向对象
    数据库的数据操作
    数据库数据类型以及建库语句
    第一天
    继承与多态
    C#面向对象——对象成员、方法重载、引用类库等
    C#面向对象初步
    SQL2008知识回顾
    C#知识回顾
  • 原文地址:https://www.cnblogs.com/flowerbirds/p/16411779.html
Copyright © 2020-2023  润新知