2

ライブラリ scotch を使用して、ブラウザから送信された 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 と finally 構文を削除し、ループが 30 秒間実行されるように while 条件を変更したコードのバリエーションを試しました。ただし、それも永遠に実行されているようです。

これを機能させる方法についてのアイデアはありますか? 私はまた、私がやろうとしていることのために利用可能な他のpythonライブラリを使用することにもオープンです:ログオンを含むブラウザのGET/POSTリクエストを記録し、これをpython内で再生します。

ありがとう。

4

1 に答える 1