本文介绍了使用TOR运行python脚本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
大家好!首先,我想确保有相似的主题,但是没有公认的答案或明确的答案.所以我想把它们结合起来再问一遍.我有以下脚本:
Hello Guys! At first I want to assure that there is similar topics but there is no accepted answer or clear response. So I want to combine them and ask again. I have following script:
import urllib2
proxy = urllib2.ProxyHandler({"http":"127.0.0.1:9050"})
opener = urllib2.build_opener(proxy)
print(opener.open("http://www.ifconfig.me/ip").read())
我想匿名运行它,例如使用tor.但是它给出了这个错误:
I want to run it anonymously, using with tor for example. But it gives this error:
Traceback (most recent call last):
File "python_tor.py", line 5, in <module>
print(opener.open("http://www.ifconfig.me/ip").read())
File "/usr/lib/python2.7/urllib2.py", line 400, in open
response = meth(req, response)
File "/usr/lib/python2.7/urllib2.py", line 513, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib/python2.7/urllib2.py", line 438, in error
return self._call_chain(*args)
File "/usr/lib/python2.7/urllib2.py", line 372, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 521, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 501: Tor is not an HTTP Proxy
我在stackoverflow中找到了以下答案:
I have found following answers in stackoverflow:
proxy_support = urllib2.ProxyHandler({"http" : "127.0.0.1:8118"})
opener = urllib2.build_opener(proxy_support)
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
print opener.open('http://www.google.com').read()
还有对此主题的评论:
It may be worthwhile for people reading this thread to know that port 8118 is actually Privoxy's port, not Tor. Tor is a strictly SOCKS-only proxy (port 9050) so it rejects all non-SOCKS traffic (e.g. HTTP). To handle non-SOCKS traffic, you would need to use Privoxy (port 8118) or Polipo (port 8123) to translate the traffic into SOCKS so Tor would accept.
Privoxy is better for privacy and Polipo is better for performance because it does caching.
任何人都可以解释如何匿名执行我的脚本吗?
Can anyone explain how to execute my script anonymously?
推荐答案
使用给定的答案可以解决此问题:
It was possible with this using given answers:
import socks
import socket
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 9050)
socket.socket = socks.socksocket
import urllib2
print(urllib2.urlopen("http://www.ifconfig.me/ip").read())
但是我很惊讶是否有可能在每个新请求中更改tor的IP地址??
But I am surprised is it possible to change tor's ip address with each new request???
这篇关于使用TOR运行python脚本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!