Forum >> Programmazione Python >> Web e Reti >> Problema di Timeout in richiesta di status di un url

Pagina: 1

Salve,
sto sviluppando uno script python che, data un lista di url, mandi in output lo status dell'indirizzo(200.300,400 ecc).
Il problema è che, quando un sito va in Timeout, settato a 15 secondi, scrive un errore ed ESCE dallo script, mentre io vorrei passare all'url successivo senza uscire.
P.S sto utulizzando il modulo "requests"
Potete aiutarmi?? :question:
import requests
import statusArg
import sys
import colour as cms
import string

c=0

if len(sys.argv)!= 3:
        print cms.color('<red>ERROR: Bad parameters</red>')     #controllo argc
        sys.exit()

f = open(sys.argv1, "r")

if sys.argv1==None:
        print cms.color('<red>File has not been opened</red>')  #controllo file
        sys.exit()

while c<20:
        st=f.readline()
        c = c+1

#stm = string.split(st,'   ')
#url = stm0 + '.wslabs.it'
#print url

for st in f:
        stm = string.split(st,'   ')            #stm = stringa modificata
        if sys.argv2=='-s':
                if stm0=='@':
                        url = 'http://wslabs.it'
                else:
                        url = 'http://' + stm0 + '.wslabs.it'
                print "Url richiesto:",
                r = requests.head(url, allow_redirects=False, timeout=2)
                print(r.url)
                print"Status:", (r.status_code)
                statusArg.control_status(r,url)
f.close()





sto sviluppando uno script python che, data un lista di url, mandi in output lo status dell'indirizzo(200.300,400 ecc).
Il problema è che, quando un sito va in Timeout, settato a 15 secondi, scrive un errore ed ESCE dallo script, mentre io vorrei passare all'url successivo senza uscire.
P.S sto utulizzando il modulo "requests"
Ciao caro, senza aver provato il tuo codice, penso che basterebbe inserire un try/except sulla richiesta che va in timeout. Si comporterebbe esattamente come chiedi, dandoti anche la possibilità di "reagire" in caso di timeout:
try:
  Provo a richiedere le informazioni
except Errore:
  Tengo evidenza dell'errore avvenuto (log)
Lo script, anche in caso di errore, continuerebbe il suo percorso.

Cya


Pagina: 1



Esegui il login per scrivere una risposta.