

PySocksを用いてurllib2モジュールでの通信にTorを経由させて、匿名性を持たせようてしています。  
ただ、ある関数(urllib2を用いている)を実行するときだけTorを経由しないようにしたいのですがどうすれば良いのでしょうか？  
urllib2.socket.socketを初期化して元のTorを経由しない通信に戻すことはできるのでしょうか？  
ご指導よろしくお願いします。

[code]

    socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, '127.0.0.1', 9050)
    urllib2.socket.socket = socks.socksocket
    
[/code]


CC BY-SA 3.0
2016-10-16T15:01:19.377
29614
2016-12-04T06:49:08.830
2016-10-17T01:11:07.213
15627
15627
question
python websocket socket
PySocksを用いて、Tor経由でのWebスクレイビング

[code]

    import socket
    original_socket = socket.socket
    ...
    socks.setdefaultproxy(...)
    socket.socket = socks.socksocket
    ...
    socket.socket = original_socket
    urllib2.a_function()
    socket.socket = socks.socksocket
    
[/code]

元の `socket.socket` を保存しておき、必要に応じてセットし直せばいいだけです。プログラムの作りによっては、`try` ~ `finally`
で囲って、例外が発生しても確実に切り替わるようにした方がいいかもしれません。


CC BY-SA 3.0
2016-10-17T07:12:18.467
29626
2016-12-04T06:49:08.830
2016-12-04T06:49:08.830
2521
2521
29614
answer