2013-01-05 6 views
0

J'essaye d'écrire un script en Python qui recharge une page toutes les x secondes en utilisant une liste de proxys, et j'ai un problème pour le moment. Je sais que ce ne sont pas non plus les fautes des mandataires, car je peux les cingler et ils rentrent très bien. Ce sont des proxies HTTP. Mon script me renvoie cette erreur:Python: urllib2 et proxies

urllib.error.URLError: <urlopen error [WinError 10061] No connection could be made because the target machine actively refused it> 

Je n'ai aucune idée de comment résoudre ce problème. Voici le script actuel:

import urllib.request 
import time 
proxy_list = input("Name of proxy list file?: ") 
proxy_file = open(proxy_list, 'r') 
url = input("URL to bot? (Has to include http://): ") 
sleep = float(input("Time between reloads? (In seconds, 0 for none): ")) 
proxies = [] 
for line in proxy_file: 
    proxies.append(line) 
proxies = [w.replace('\n', '') for w in proxies] 

while True: 
    for i in range(len(proxies)): 
     proxy = proxies[i] 
     proxy2 = {"http":"http://%s" % proxy} 
     proxy_support = urllib.request.ProxyHandler(proxy2) 

     opener = urllib.request.build_opener(proxy_support) 
     urllib.request.install_opener(opener) 
     urllib.request.urlopen(url).read() 
     time.sleep(float(sleep)) 

Merci.

Répondre

2

N'utilisez pas urllib2. Sérieusement, ne faites pas. Votre Saint Graal: requests.

ce que vous essayez de faire est alors:

while True: 
    for proxy in proxies: 
     r = request.get(my_url, proxies={'http': proxy}) 
     print r.text 
     time.sleep(float(sleep)) 
+0

Hm, je viens de comprendre que je pense que les mandataires sont le problème .. Je vais utiliser 'requests' au lieu de urllib une fois que je l'obtiens trié. –

+0

Konstantin, étant donné que l'exception d'un ou de plusieurs mandataires ne répond absolument pas. Il suffit d'utiliser les délais de connexion et la gestion des exceptions, et les proxys non fonctionnels ne devraient pas poser de problème. – Anorov

+0

Les demandes prennent-elles en charge le format PDF? – NumenorForLife