ライブラリ 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内で再生します。
ありがとう。