2011-12-18 362 views
4

我想用python和urllib2來使用Tor,並且卡住了。下面Python urllib2 Tor 514需要身份驗證

print opener.open('http://check.torproject.org/').read() 

而且

telnet 127.0.0.1 9051 

給了我以下錯誤:

514 Authentication Required. 

這裏是我想使用的代碼:可是我收到關於urllib2的相同的514認證錯誤.urlopen電話。

import urllib2 
# using TOR ! 
proxy_support = urllib2.ProxyHandler({"http" : "127.0.0.1:9051"}) 
opener = urllib2.build_opener(proxy_support) 
urllib2.install_opener(opener) 
# every urlopen connection will then use the TOR proxy like this one : 
urllib2.urlopen('http://www.google.com').read() 

對此爲何發生的任何建議?

通過Tor Vidalia的瀏覽器 - >設置 - >高級:身份驗證設置爲 '隨機生成'

我使用Python 2.65 urllib2的托爾

回答

1

谷歌搜索suggests(以及Tor手動confirms)認爲9051是Tor的默認控制端口。實際代理默認在端口9050上運行,這是您需要使用的端口。但是,Vidalia不使用默認端口,無需額外配置。

另一個問題是,默認情況下urllib2無法使用SOCKS代理。有關可能的解決方案,請參閱這些twoquestions

+0

因此,我用9050替換了9051,現在收到'連接被拒絕'。我正在使用Tor瀏覽器捆綁軟件安裝Linux。 Tor通過Vidalia控制檯運行。日誌文件在127.0.0.1:9051上顯示'打開控制監聽器'。我需要啓用9050端口嗎?當我執行'netstat -a | grep 905'時,我所看到的只是9051端口。這一定很簡單,我錯過了。 – 2011-12-18 09:21:07

+0

我發現如何啓用襪子端口。在Tor ./Data/Tor/torrc文件中,我將SocksPort從auto更改爲9050.所以現在我看到9050在執行netstat時正在監聽。接下來的問題是,當使用9050時,urllib2抱怨說'Tor不是HTTP代理服務器'。所以它現在看起來像我必須使用HTTP代理服務器,像privoxy與Tor一起工作。如果沒有,請讓我知道。 – 2011-12-18 10:36:27

+0

看起來捆綁包中的Vidalia使用非默認端口...消息日誌 - Vidalia中的高級應包含一行,如「偵聽端口上的Socks偵聽程序」 - 這是您實際需要使用的端口。或者像你所做的那樣切換端口。 – Tanriol 2011-12-18 10:41:20