我正在编写一个将在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} } 我会。但是不愿意。
答案 0 :(得分:2)
通过听取good YouTube tutorial来计算出来。
只需要致电socket.setdefaultproxy()
,它就会让我回来。
答案 1 :(得分:0)
对于Python 3,您可以使用以下方法设置默认套接字:
socks.setdefaultproxy(None)
socket.socket = socks.socksocket