Python urllib2.urlopen bug: errore di timeout porta verso il basso la mia connessione a Internet?

StackOverflow https://stackoverflow.com/questions/3974452

  •  09-10-2019
  •  | 
  •  

Domanda

Non so se sto facendo qualcosa di sbagliato, ma io sono sicuro al 100% che è lo script python porta verso il basso la mia connessione internet.

Ho scritto uno script python per migliaia raschiatura di informazioni sul file di intestazione, soprattutto per Content-Length per ottenere la dimensione esatta di ogni file, utilizzando richiesta HEAD.

Codice di esempio:

class HeadRequest(urllib2.Request):
    def get_method(self):
        return "HEAD"

response = urllib2.urlopen(HeadRequest("http://www.google.com"))
print response.info()

Il fatto è che dopo diverse ore di funzionamento, lo script inizia a buttare fuori l'errore urlopen scaduta, e la mia connessione internet è giù da allora in poi. E la mia connessione a Internet sarà sempre di nuovo in subito dopo ho vicino che lo script. All'inizio ho pensato che potrebbe essere la connessione non stabile, ma dopo aver più volte l'esecuzione, si è rivelato essere colpa degli script.

Non so perché, questo dovrebbe essere considerato come un bug, giusto? O il mio ISP mi ha vietato per fare queste cose? (Ho già impostato il programma di aspettare 10s ogni richiesta)

A proposito, sto utilizzando la rete VPN, Ha qualcosa a che fare con questo?

È stato utile?

Soluzione

Direi che sia il vostro ISP o il provider di VPN che si sta limitando a causa di elevati volumi di traffico sospetto, o il vostro router o tunnel VPN è sempre intasati con connessioni half-open. Internet dei consumatori non è davvero destinato ad attività spider-tipo.

Altri suggerimenti

  

"fa partire lo script di buttare fuori l'errore urlopen scaduta"

Non possiamo nemmeno cominciare a immaginare.

È necessario raccogliere dati sul computer e includono tali dati nella sua interrogazione.

Ottenere un altro computer. Eseguire lo script. L'accesso a Internet di un altro computer bloccato anche? O lo fa ancora lavoro?

  • Se entrambi i computer sono bloccati, non è il vostro software, è il tuo provider. aggiornare la tua domanda con queste informazioni, e come l'hai avuto.

  • Se viene arrestato solo il computer che esegue lo script, non è il vostro fornitore, è il tuo risorse del sistema operativo di essere esausto. Questo è più difficile da diagnosticare perché potrebbe essere di memoria, prese o descrittori di file. Di solito le sue prese.

Hai bisogno di trovare un po 'di ifconfig / ipconfig software di diagnostica per il sistema operativo. È necessario Aggiorna la tua domanda a stato esattamente ciò che il sistema operativo utilizzato. È necessario utilizzare questo software di diagnostica per vedere quante socket aperti ingombrano il vostro sistema.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top