2009-11-14 56 views
0

就像標題所說,我的代碼基本上做到這一點:我設置的urllib2代理服務器,然後我不能改變它

集代理,測試代理,做一些很酷的東西

但經過該代理是第一次設置,它堅持這種方式,永遠不會改變。這是失敗的代碼:

# Pick proxy 
    r = random.randint(0, len(proxies) - 1) 
    proxy = proxies[r] 
    print proxy 

    # Setup proxy 
    l_proxy_support = urllib2.ProxyHandler({"http": "http://{0}:{1}".format(*proxy)}) 
    l_opener = urllib2.build_opener(l_proxy_support) 

    try: 
     l_req = l_opener.open(
      urllib2.Request('http://[MYIPADDRESSHERE]/ip.php', None, agent) 
     ) 
     print l_req.read() 
    except urllib2.URLError: 
     print "Proxy not functioning, aborting..." 

    # Do cool stuff here, not really relevant 

輸出最終被:

['X.Y.Z.124', '666', 'http'] 
[Skarlet] Your IP address is: X.Y.Z.124 
['X2.Y2.Z2.190', '666', 'http'] 
[Skarlet] Your IP address is: X.Y.Z.124 
['X3.Y3.Z3.41', '666', 'http'] 
[Skarlet] Your IP address is: X.Y.Z.124 

我真的很疑惑,現在。

謝謝你的時間。

PD:從我家的IP地址響應的腳本只是一個PHP回顯$ _SERVER ['REMOTE_ADDR']。

回答

1

這看起來很奇怪。我一直髮現httplib2模塊是最簡單的Python HTTP客戶端。有一個使用httplib2 with the socks module的例子。

對不起,我知道這不是你的問題的具體答案,但它可能是一個解決方法來嘗試。

+0

你是對的,它不是特定的,但非常有幫助。 我已經用httplib2代替了所有的urllib2代碼(它不是那麼多的代碼來改變),並且我已經減少了HTTP處理代碼的數量,更不用說httplib2更好用了。 謝謝。 – user168833 2009-11-15 00:20:19

+0

只是爲了同情 - urllib和urllib2把我拉上了牆。 – 2009-11-15 00:41:43

相關問題