URL qui tourne qui tourne qui tourne

URL qui tourne qui tourne qui tourne - Python - Programmation

Marsh Posté le 29-07-2010 à 06:47:19    

Bonjour.
j'ai réfléchi (si si  :pt1cable: )

Code :
  1. req = urllib2.Request(ADRESSE, None, headers)
  2.         try:
  3.             response = urllib2.urlopen(req)
  4.         except (IOError), eObject:
  5.             print 'E R R E U R   D   E N T R E E   S O R T I E - Erreur [%s]' % eObject
  6.             fich = open('d:\ERREUR_ACCES.TXT','a')
  7.             fich.write(ADRESSE)
  8.             fich.write("\n" )
  9.             fich.close()
  10.         except (ValueError), eObject:
  11.             print 'E R R E U R   D E   V A L E U R - Erreur [%s]' % eObject
  12.             fich = open('d:\ERREUR_ACCES.TXT','a')
  13.             fich.write(ADRESSE)
  14.             fich.write("\n" )
  15.             fich.close()
  16.         except:
  17.             print 'E R R E U R   A U T R E'
  18.             fich = open('d:\ERREUR_ACCES.TXT','a')
  19.             fich.write(ADRESSE)
  20.             fich.write("\n" )
  21.             fich.close()
  22.         else:
  23.             TXTWEB=''
  24.             if response:
  25.                 try:
  26.                     TXTWEB = response.read()


TXTWEB est le code source de ma page
derriere j'ai encore deux essais (try except) et une condition totale ( Except: )
le problème qui se pose à moi :
certaines URL ne répondent pas ou bien ont un comportement bizarre (sous le navigateur, l'icone tourne, tourne, tourne et jamais aucun résultat n'est renvoyé.
donc mon prog lui aussi... tourne, tourne, tourne... et il attend que je revienne le voir huit heures après pour me dire qu'il est toujours en train de lire l'adresse
je ne sais pas comment gérer cette exception.
Pourriez-vous m'orienter ?
Merci


---------------
http://www.ypikay.com
Reply

Marsh Posté le 29-07-2010 à 06:47:19   

Reply

Marsh Posté le 29-07-2010 à 08:42:42    

peut-être avec ça :??:  
 
http://nick.vargish.org/clues/python-tricks.html


---------------
oui oui
Reply

Marsh Posté le 29-07-2010 à 11:45:19    

erwan83 a écrit :

Bonjour.
j'ai réfléchi (si si  :pt1cable: )

Code :
  1. req = urllib2.Request(ADRESSE, None, headers)
  2.  
  3.        try:
  4.            response = urllib2.urlopen(req)
  5.        except (IOError), eObject:
  6.            print 'E R R E U R   D   E N T R E E   S O R T I E - Erreur [%s]' % eObject
  7.            fich = open('d:\ERREUR_ACCES.TXT','a')
  8.            fich.write(ADRESSE)
  9.            fich.write("\n" )
  10.            fich.close()
  11.        except (ValueError), eObject:
  12.            print 'E R R E U R   D E   V A L E U R - Erreur [%s]' % eObject
  13.            fich = open('d:\ERREUR_ACCES.TXT','a')
  14.            fich.write(ADRESSE)
  15.            fich.write("\n" )
  16.            fich.close()
  17.        except:
  18.            print 'E R R E U R   A U T R E'
  19.            fich = open('d:\ERREUR_ACCES.TXT','a')
  20.            fich.write(ADRESSE)
  21.            fich.write("\n" )
  22.            fich.close()
  23.        else:
  24.            TXTWEB=''
  25.            if response:
  26.                try:
  27.                    TXTWEB = response.read()



The fuck's that shit [:pingouino]

 

Faut se calmer sur les majuscules et les messages d'erreur débiles un peu, et foutre des try/except partout aussi [:pingouino]

 

Et pourquoi tu as besoin de créer une Request exactement, t'as des headers custom à monter [:pingouino dei]

 
erwan83 a écrit :

certaines URL ne répondent pas ou bien ont un comportement bizarre (sous le navigateur, l'icone tourne, tourne, tourne et jamais aucun résultat n'est renvoyé.
donc mon prog lui aussi... tourne, tourne, tourne... et il attend que je revienne le voir huit heures après pour me dire qu'il est toujours en train de lire l'adresse
je ne sais pas comment gérer cette exception.


C'est pas une exception. Dans Python 2.6, urlopen prend un argument timeout comme indiqué dans la doc. C'est le temps qu'il va passer à attendre la réponse


Message édité par masklinn le 29-07-2010 à 11:46:02

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 29-07-2010 à 18:50:10    

oui mais je suis sous 2.5 snirfff


---------------
http://www.ypikay.com
Reply

Marsh Posté le 29-07-2010 à 19:52:38    

Tu as le timeout global sur socket, dont tous les sockets (y compris celui utilisé par urllib2) héritent: http://docs.python.org/library/soc [...] ulttimeout
 

Code :
  1. import urllib2
  2. import socket
  3. socket.setdefaulttimeout(30)
  4. f = urllib2.urlopen('http://www.python.org/')


 
Si tu es dans ton script à toi tu peux t'arrêter là, si tu es dans un plus gros logiciel il serait probablement une bonne idée de restaurer defaulttimeout après tes requêtes.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 30-07-2010 à 06:55:51    

Merci !!!!!!!!!! je note cette réponse !


---------------
http://www.ypikay.com
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed