使用Scotch在Python中记录HTTP

我正在尝试记录浏览器使用库苏格兰语发送的HTTP GET / 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))

因此,我运行了上面的代码,转到google chrome,并访问了一些站点以查看是否会被记录下来。


但是,我看不到代码应如何终止。似乎必须在httpd.handle_request()中出错才能终止代码。


我尝试了变种代码,删除了try和final语法,并更改了while条件,以使循环运行30秒。但是,这似乎也永远存在。


关于如何使它正常工作的任何想法?我也愿意使用其他可用的python库进行我想做的事情:记录浏览器的GET / POST请求(包括登录名),然后在python中重播此请求。


一只斗牛犬
浏览 147回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python