用Scotch在Python中录制HTTP

2024-06-07 10:50:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用库scotch记录浏览器发送的httpget/POST请求。在

我使用他们的示例代码:http://darcs.idyll.org/~t/projects/scotch/doc/recipes.html#id2

 import scotch.proxy
 app = scotch.proxy.ProxyApp()

 import scotch.recorder
 recorder = scotch.recorder.Recorder(app, verbosity=1)

 try:

     from wsgiref.simple_server import WSGIServer, WSGIRequestHandler

     server_address = ('', 8000)
     httpd = WSGIServer(server_address, WSGIRequestHandler)

     httpd.set_app(app)

     while 1:
        httpd.handle_request()

 finally:

    from cPickle import dump
    outfp = open('recording.pickle', 'w')
    dump(recorder.record_holder, outfp)
    outfp.close()

    print 'saved %d records' % (len(recorder.record_holder))

所以我运行了上面的代码,访问了googlechrome,并访问了一些站点,看看是否会被记录下来。在

但是,我不认为代码应该如何终止。看来一定有个错误httpd.handle_请求()以终止代码。在

我尝试了一个variation of the code,删除了try and finally语法,并更改了while条件,以便循环运行30秒。然而,这似乎也将永远持续下去。在

有什么办法让它工作吗?我也愿意使用其他python库来实现我的目标:记录浏览器的GET/POST请求,包括登录,并在python中重放。在

谢谢。在


Tags: 代码fromimportappserver记录浏览器post
1条回答
网友
1楼 · 发布于 2024-06-07 10:50:05

如果我错了,请更正我,但您试图通过设置本地代理来记录本地浏览器的活动。如果是这种情况,您的浏览器需要通过您的代理,以便代理服务器记录活动。在

您提供的代码将代理服务器设置为本地主机:8000,所以你需要告诉你的浏览器。实际设置取决于浏览器,我相信你可以很容易地在谷歌上找到它。在

当我要求检查代码是否正在运行时,我实际上是指您的本地代理是否接受来自浏览器的某种请求。你看到“保存的记录”打印出你的代码吗?在

相关问题 更多 >

    热门问题