Python - 切换到我的本地SOCKS代理的连接

时间:2015-09-22 23:02:14

标签: python sockets proxy tor

我正在编写一个将在Tor中运行的Python爬虫程序。我有Tor工作并使用this YouTube tutorial中的代码来解决如何在127.0.0.1:9050处路由我的Python请求以通过Tor SOCKS代理。

我无法弄清楚如何在我的脚本中打开/关闭此功能。有些要求我想要通过Tor而有些我不想。基本上,我无法找出正确的"关闭"或"关闭"我正在使用的socket个对象中的方法因为我不理解它们。

现在发生了什么

import socket
import socks
import requests

def connect_to_socks():
    socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, '127.0.0.1', 9050, True)
    socket.socket = socks.socksocket

r = requests.get('http://wtfismyip.com/text')
print r.text #prints my ordinary IP address
connect_to_socks()
r = requests.get('http://wtfismyip.com/text')
print r.text #prints my Tor IP address

如何关闭套接字路由到SOCKS代理,以便通过我的普通互联网连接?

我希望使用requests代替urllib2,因为它似乎要容易得多,但如果我必须深入了解urllib2甚至{{1} } 我会。但是不愿意。

2 个答案:

答案 0 :(得分:2)

通过听取good YouTube tutorial来计算出来。

只需要致电socket.setdefaultproxy(),它就会让我回来。

答案 1 :(得分:0)

对于Python 3,您可以使用以下方法设置默认套接字:

socks.setdefaultproxy(None)
socket.socket = socks.socksocket