2013-08-22 46 views
2

我有一些HTTP代理例如urllib2的:使用Python機械化,並與隨機代理支持

123.123.123.123:2312 
121.111.3.89:8080 
111.133.1.111:23810 
114.113.1.113:23812 
111.133.1.114:23810 

它們都具有相同的用戶名和密碼:testusertestpass

我想納入隨機代理支持以下內容:

import urllib2 
import httplib 
def check(): 
    try: 
     urllib2.urlopen("", timeout = 60) 
     return True 
    except (IOError, httplib.HTTPException): 
     return False 

還試圖將它分爲以下幾個:

import mechanize 
def gethtml(): 
     post_url = "" 
     browser = mechanize.Browser() 
     browser.set_handle_robots(False) 
     browser.addheaders = [('User-agent', 'Firefox')] 

     try: 
      html = browser.open(post_url).read() 
     except Exception: 
      return 

而且還到類似:

import mechanize 
def check2(): 
    post_url = "" 
    browser = mechanize.Browser() 
    browser.set_handle_robots(False) 
    browser.addheaders = [('User-agent', 'Firefox')] 
    parameters = {'page' : '1', 
        'sortorder' : 'asc' 
       } 

    data = urllib.urlencode(parameters) 

    try: 
     trans_array = browser.open(post_url,data).read().decode('UTF-8') 
    except Exception: 
     return 

我最大的問題是,我已經嘗試了一切,我得到以下兩個錯誤:

httperror_seek_wrapper: HTTP Error 407: Proxy Authentication Required

HTTPError: HTTP Error 407: Proxy Authentication Required

是anyon能夠幫助我創建一些工作示例,將不勝感激。

+0

所以你剛纔問如何使用代理與urllib2的和機械化?我認爲那裏有很多教程。如果你有一些你無法修復的錯誤 - 嘗試發佈給你這個錯誤的實際代碼,並且有人可能會幫助你 – ton1c

回答

1

「隨機代理支持」與mechanize?那只是regular mechanize proxy stuff,但是從代理列表中隨機挑選的代理?

如果是的話,你可以試試這個:

import mechanize 
import random 

proxies = [ 
    '123.123.123.123:2312', 
    '121.111.3.89:8080' 
    '111.133.1.111:23810', 
    '114.113.1.113:23812', 
    '111.133.1.114:23810', 
    ] 
rand_proxy = random.choice(proxies) 

browser = mechanize.Browser() 
browser.set_proxies({'http': rand_proxy}) 
browser.add_proxy_password('testuser', 'testpass')