Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2099 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  Qu'est-il à dire de cette erreur ? (URL)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Qu'est-il à dire de cette erreur ? (URL)

n°2006824
erwan83
Du Shift DEL tu te méfieras !
Posté le 03-07-2010 à 08:49:08  profilanswer
 

soit le code de mon scanner web :
 

Code :
  1. try:
  2.             response = urllib2.urlopen(req)
  3.         except (IOError), eObject:
  4.             print 'E R R E U R   D   E N T R E E   S O R T I E - Erreur [%s]' % eObject
  5.             fichier_err = 'e:\\ERREUR_ACCES.TXT'
  6.             fichier_erreur = open(fichier_err,'a')
  7.             fichier_erreur.write(ADRESSE)
  8.             fichier_erreur.write('\n')
  9.             fichier_erreur.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.             fichier_err = 'e:\\ERREUR_ACCES.TXT'
  13.             fichier_erreur = open(fichier_err,'a')
  14.             fichier_erreur.write(ADRESSE)
  15.             fichier_erreur.write('\n')
  16.             fichier_erreur.close()
  17.         else:


voici l'erreur que j'ai obtenue :

Code :
  1. ADRESSE EN COURS :http://www.n-europe.com
  2. Traceback (most recent call last):
  3.   File "C:\Python25\001_moteur_de_recherche sans les phrases.py", line 304, in <module>
  4.     TXTWEB = response.read()
  5.   File "C:\Python25\lib\socket.py", line 304, in read
  6.     data = self._sock.recv(rbufsize)
  7.   File "C:\Python25\lib\httplib.py", line 509, in read
  8.     return self._read_chunked(amt)
  9.   File "C:\Python25\lib\httplib.py", line 548, in _read_chunked
  10.     chunk_left = int(line, 16)
  11. ValueError: invalid literal for int() with base 16: ''


---------------
http://www.ypikay.com
mood
Publicité
Posté le 03-07-2010 à 08:49:08  profilanswer
 

n°2006981
Sve@r
Posté le 04-07-2010 à 19:19:30  profilanswer
 

erwan83 a écrit :

soit le code de mon scanner web :
 

Code :
  1. try:
  2.             response = urllib2.urlopen(req)
  3.         except (IOError), eObject:
  4.             print 'E R R E U R   D   E N T R E E   S O R T I E - Erreur [%s]' % eObject
  5.             fichier_err = 'e:\\ERREUR_ACCES.TXT'
  6.             fichier_erreur = open(fichier_err,'a')
  7.             fichier_erreur.write(ADRESSE)
  8.             fichier_erreur.write('\n')
  9.             fichier_erreur.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.             fichier_err = 'e:\\ERREUR_ACCES.TXT'
  13.             fichier_erreur = open(fichier_err,'a')
  14.             fichier_erreur.write(ADRESSE)
  15.             fichier_erreur.write('\n')
  16.             fichier_erreur.close()
  17.         else:


voici l'erreur que j'ai obtenue :

Code :
  1. ADRESSE EN COURS :http://www.n-europe.com
  2. Traceback (most recent call last):
  3.   File "C:\Python25\001_moteur_de_recherche sans les phrases.py", line 304, in <module>
  4.     TXTWEB = response.read()
  5.   File "C:\Python25\lib\socket.py", line 304, in read
  6.     data = self._sock.recv(rbufsize)
  7.   File "C:\Python25\lib\httplib.py", line 509, in read
  8.     return self._read_chunked(amt)
  9.   File "C:\Python25\lib\httplib.py", line 548, in _read_chunked
  10.     chunk_left = int(line, 16)
  11. ValueError: invalid literal for int() with base 16: ''



 
L'erreur ne s'est pas passée sur "response = urllib2.urlopen(req)" sinon l'except aurait été appelé et t'aurais eu un "E R R E U R   D E   V A L E U R".
Faut donner la ligne 304 de ton fichier "001_moteur_de_recherche sans les phrases.py" et non le bloc try/except qui, visiblement, n'a pas été impliqué...
 
Quoi qu'il en, soit, il cherche à convertir une string sensée être un nombre en base 16 (comme par exemple "1a" ) en nombre correspondant en base 10 (comme 26)
 
Accessoirement, tu peux remplacer

Code :
  1. fichier_erreur.write(ADRESSE)
  2. fichier_erreur.write('\n')


par

Code :
  1. fichier_erreur.write(ADRESSE + '\n')


ou bien

Code :
  1. fichier_erreur.write("%s\n" % ADRESSE)


Message édité par Sve@r le 04-07-2010 à 19:22:12

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°2007019
erwan83
Du Shift DEL tu te méfieras !
Posté le 05-07-2010 à 02:23:30  profilanswer
 

Yes... donc y a-t-il un controle à insérer ?
Bon, vu que j'ai refait le fichier (quelques interlignes pour aérer tout ce bazar) j'attendrai la reproduction de l'erreur et je te tiendrai au courant !
Merci !


---------------
http://www.ypikay.com
n°2007034
erwan83
Du Shift DEL tu te méfieras !
Posté le 05-07-2010 à 08:59:56  profilanswer
 

Code :
  1. ADRESSE EN COURS :http://www.boutiqueonze.com
  2. Traceback (most recent call last):
  3.   File "C:\Python25\001_moteur_de_recherche sans les phrases.py", line 332, in <module>
  4.     TXTWEB = response.read()
  5.   File "C:\Python25\lib\socket.py", line 304, in read
  6.     data = self._sock.recv(rbufsize)
  7.   File "C:\Python25\lib\httplib.py", line 509, in read
  8.     return self._read_chunked(amt)
  9.   File "C:\Python25\lib\httplib.py", line 548, in _read_chunked
  10.     chunk_left = int(line, 16)
  11. ValueError: invalid literal for int() with base 16: '


et voila la ligne 332

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.         except (ValueError), eObject:
  7.             print 'E R R E U R   D E   V A L E U R - Erreur [%s]' % eObject
  8.         else:
  9.             TXTWEB=''
  10.             if response:
  11.                 TXTWEB = response.read()


---------------
http://www.ypikay.com
n°2007036
Sve@r
Posté le 05-07-2010 à 09:04:51  profilanswer
 

erwan83 a écrit :


et voila la ligne 332

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.         except (ValueError), eObject:
  7.             print 'E R R E U R   D E   V A L E U R - Erreur [%s]' % eObject
  8.         else:
  9.             TXTWEB=''
  10.             if response:
  11.                 TXTWEB = response.read()



 
Ben ça deviendra

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.        except (ValueError), eObject:
  8.            print 'E R R E U R   D E   V A L E U R - Erreur [%s]' % eObject
  9.        # try
  10.        if response:
  11.            try:
  12.                TXTWEB = response.read()
  13.            except ValueError, eObject:
  14.                print "Erreur [%s] - %s" % (response, eObject)
  15.                TXTWEB=""
  16.           # try
  17.        # if


Message édité par Sve@r le 05-07-2010 à 09:06:12

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°2007160
erwan83
Du Shift DEL tu te méfieras !
Posté le 05-07-2010 à 14:49:08  profilanswer
 

Ah ben oui !
Merci beaucoup !!


---------------
http://www.ypikay.com
n°2007283
erwan83
Du Shift DEL tu te méfieras !
Posté le 06-07-2010 à 06:53:01  profilanswer
 

Code :
  1. ADRESSE EN COURS :http://www.wiz-import.fr
  2. Traceback (most recent call last):
  3.   File "C:\Python25\001_moteur_de_recherche sans les phrases.py", line 302, in <module>
  4.     TXTWEB = response.read()
  5.   File "C:\Python25\lib\socket.py", line 304, in read
  6.     data = self._sock.recv(rbufsize)
  7.   File "C:\Python25\lib\httplib.py", line 529, in read
  8.     s = self.fp.read(amt)
  9.   File "C:\Python25\lib\socket.py", line 328, in read
  10.     data = self._sock.recv(left)
  11. error: (10054, 'Connection reset by peer')
  12. >>>


et là je mets quoi comme except ?
 
heu... mon code :

Code :
  1. else:
  2.             TXTWEB=''
  3.             if response:
  4.                 try:
  5.                     TXTWEB = response.read()#ligne de l'erreur
  6.                 except ValueError, eObject:
  7.                     print "ERREUR BOUCLE 16 BITS [%s] - %s" % (response, eObject)
  8.                     TXTWEB=""
  9.                 else:
  10.                     print 'BOUCLE 16 BIT OK'
  11.            
  12.             TXTWEB = TXTWEB.replace("\n","" ).replace("\r","" ).replace("\t","" )


en désespoir de cause j'ai mis except RuntimeError
( ref http://docs.python.org/library/exceptions.html )

Message cité 1 fois
Message édité par erwan83 le 06-07-2010 à 07:24:14

---------------
http://www.ypikay.com
n°2007603
Sve@r
Posté le 06-07-2010 à 22:21:29  profilanswer
 

erwan83 a écrit :

Code :
  1. ADRESSE EN COURS :http://www.wiz-import.fr
  2. Traceback (most recent call last):
  3.   File "C:\Python25\001_moteur_de_recherche sans les phrases.py", line 302, in <module>
  4.     TXTWEB = response.read()
  5.   File "C:\Python25\lib\socket.py", line 304, in read
  6.     data = self._sock.recv(rbufsize)
  7.   File "C:\Python25\lib\httplib.py", line 529, in read
  8.     s = self.fp.read(amt)
  9.   File "C:\Python25\lib\socket.py", line 328, in read
  10.     data = self._sock.recv(left)
  11. error: (10054, 'Connection reset by peer')
  12. >>>


et là je mets quoi comme except ?


Hum... tu peux essayer except error. Ou bien except: sans rien derrière => ça catche toutes les exceptions
 

erwan83 a écrit :

en désespoir de cause j'ai mis except RuntimeError
( ref http://docs.python.org/library/exceptions.html )


Mouais, pourquoi pas. Si ça marche...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°2007906
erwan83
Du Shift DEL tu te méfieras !
Posté le 07-07-2010 à 22:46:18  profilanswer
 

ben écoute, ça a marché, il a scanné tout mon fichier sans problème.
seul soucis je lui avais demandé dans l'exception runtimeError de m'écrire 50 fois 'RunTime Error' pour que ça me saute à la figure et évidemment, pas vu !!!!
Mais bon, là je passe quelques jous chez mes parents, dimanche je remettrai le nez dedans car j'ai 18000 pages web indexées et il va falloir que je les trie... Au pire on se voit lundi et on en parle autour d'un café


---------------
http://www.ypikay.com
n°2008538
erwan83
Du Shift DEL tu te méfieras !
Posté le 09-07-2010 à 23:45:31  profilanswer
 

Bon, d'après ma copine qui jette un oeil de temps en temps, le moteur est à l'arret depuis 48 heures... Argggg 48000 pages que j'aurais pu indexer en plus...  
Bref, il a bouffé toute la liste que je lui avais passée sans problème aucun !
Yes !!!

Message cité 1 fois
Message édité par erwan83 le 10-07-2010 à 00:03:35

---------------
http://www.ypikay.com
mood
Publicité
Posté le 09-07-2010 à 23:45:31  profilanswer
 

n°2008652
Sve@r
Posté le 10-07-2010 à 23:58:14  profilanswer
 

erwan83 a écrit :

Bon, d'après ma copine qui jette un oeil de temps en temps, le moteur est à l'arret depuis 48 heures... Argggg 48000 pages que j'aurais pu indexer en plus...


J'espère que l'index est stocké dans une bdd parce que Python n'est pas fait pour ça. Dans mon projet, j'avais commencé par stocker les valeurs en mémoire. 3mn30 pour analyser et afficher un truc de 36000 valeurs.
Puis j'ai déporté le stockage dans des tables temporaires de Postgres. Résultat: 35 sec...
 


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°2008684
erwan83
Du Shift DEL tu te méfieras !
Posté le 11-07-2010 à 12:23:45  profilanswer
 

non non je t'expliquerai j'ai environ (actuellement) 17342 index basés sur des triplets de lettres. ensuite je lance une boucle dans mon php qui cherche l'existence d'un de ces triplets :
array a b c d ..... multiplié par trois
si il me renvoie un triplet, je prends le premier, ca signifie que dans l'index qui porte le nom du triplet je trouverai mon mot...
etc pour le mot suivant etc etc
 

Code :
  1. <?php
  2. $inputtemp = strtolower($inputtemp);
  3. $tableau1 = array(1 => 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9');
  4. $tableau2 = array(1 => 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9');
  5. $tableau3 = array(1 => 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9');
  6. $trouve = '0';
  7. foreach($tableau1 as $lettre1)
  8. {
  9. foreach($tableau2 as $lettre2)
  10.  {
  11.  foreach($tableau3 as $lettre3)
  12.   {
  13.   $ind = $lettre1.$lettre2.$lettre3;
  14.   if (stristr($inputtemp,$ind) !== FALSE)
  15.    {
  16.    $indicateur = '../../........../INDIC_'.strtoupper($ind).'.IND';
  17.    $trouve = '1';
  18.    break;
  19.    }
  20.   if ($trouve == '1'){break;}
  21.   }
  22.  if ($trouve == '1'){break;}
  23.  }
  24. if ($trouve == '1'){break;}
  25. }
  26. ?>


 
exemple de temps d'une requête :
 
http://88.163.71.238/index.php?inp [...] e=1&open=n
 
moins d'un dixième de seconde !
 
au fait :
 

Code :
  1. ERREUR BOUCLE 16 BITS [<addinfourl at 47985168 whose fp = <socket._fileobject object at 0x02DB0570>>] - invalid literal for int() with base 16: ''


YESSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS !!!


Message édité par erwan83 le 11-07-2010 à 12:26:23

---------------
http://www.ypikay.com
n°2008685
flo850
moi je
Posté le 11-07-2010 à 13:04:38  profilanswer
 

donc que je cherche pantoufle ou pangloss, j'ai les mêmes résultats ?

n°2008712
Sve@r
Posté le 11-07-2010 à 18:13:21  profilanswer
 

flo850 a écrit :

donc que je cherche pantoufle ou pangloss, j'ai les mêmes résultats ?


 
Ben oui, surtout si on cherche les pantoufles de pangloss...[:petrus jar]


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°2008723
flo850
moi je
Posté le 11-07-2010 à 18:48:02  profilanswer
 

au passage , quand on cherche design, ça plante

n°2008892
erwan83
Du Shift DEL tu te méfieras !
Posté le 12-07-2010 à 20:55:46  profilanswer
 

attention pas encore au point le truc
non si tu cherches pantoufles tu auras admettons l'index PAN ou encore OUF etc et il cherchera le mot exact dans cet index etc etc...


---------------
http://www.ypikay.com
n°2008893
erwan83
Du Shift DEL tu te méfieras !
Posté le 12-07-2010 à 20:56:31  profilanswer
 

flo850 a écrit :

au passage , quand on cherche design, ça plante


 
http://88.163.71.238/index.php?inp [...] t=0&open=n
(1067 résultats)


---------------
http://www.ypikay.com
n°2008894
erwan83
Du Shift DEL tu te méfieras !
Posté le 12-07-2010 à 21:13:18  profilanswer
 

Bon, pour revenir sur du serieux, hier j'ai été emmerdé par cette page :
http://www.culture.gouv.fr
il se trouve que l'url, quand on ouvre la page se charge en permanence, bizarre, en fait on charge à 99.99% mais on n'arrive jamais à finir le chargement.
ça m'a planté le BOT : il m'a marqué  
adresse en cours http://www.culture.gouv.fr
titre : blabla
et un quart d'heure après il était encore dessus.
 
=> comment et où mettre une sorte de compteur ?
 

Code :
  1. try:
  2.             response = urllib2.urlopen(req)
  3.         except (IOError), eObject:
  4.             print 'E R R E U R   D   E N T R E E   S O R T I E - Erreur [%s]' % eObject
  5.             fichier_err = 'e:\\ERREUR_ACCES.TXT'
  6.             fichier_erreur = open(fichier_err,'a')
  7.             fichier_erreur.write('[')
  8.             fichier_erreur.write(ADRESSE)
  9.             fichier_erreur.write(']')
  10.             fichier_erreur.write('\n')
  11.             fichier_erreur.close()
  12.         except (ValueError), eObject:
  13.             print 'E R R E U R   D E   V A L E U R - Erreur [%s]' % eObject
  14.             fichier_err = 'e:\\ERREUR_ACCES.TXT'
  15.             fichier_erreur = open(fichier_err,'a')
  16.             fichier_erreur.write('[')
  17.             fichier_erreur.write(ADRESSE)
  18.             fichier_erreur.write(']')
  19.             fichier_erreur.write('\n')
  20.             fichier_erreur.close()
  21.         else:
  22.             TXTWEB=''
  23.             if response:
  24.                 try:
  25.                     TXTWEB = response.read()
  26.                 except ValueError, eObject:
  27.                     print "ERREUR BOUCLE 16 BITS [%s] - %s" % (response, eObject)
  28.                     TXTWEB=""
  29.                 except RuntimeError, eObject:
  30.                     fichier_err = 'e:\\ERREUR_16_BITS.TXT'
  31.                     fichier_erreur = open(fichier_err,'a')
  32.                     x = "ERREUR 2 BOUCLE 16 BITS [%s] - %s" % (response, eObject)
  33.                     fichier_erreur.write(x)
  34.                     fichier_erreur.write('[')
  35.                     fichier_erreur.write(ADRESSE)
  36.                     fichier_erreur.write(']')
  37.                     fichier_erreur.write('\n')
  38.                     fichier_erreur.close()
  39.                     print "ERREUR 2 BOUCLE 16 BITS [%s] - %s" % (response, eObject)
  40.                     TXTWEB=""


 
donc c'est ValueError qui a détecté l'erreur 16 bits.
(aucune inscription dans le fichier)
 
Et pour finir, ce code d'erreur :
 

Code :
  1. TXTWEB = response.read()
  2.   File "C:\Python25\lib\socket.py", line 304, in read
  3.     data = self._sock.recv(rbufsize)
  4.   File "C:\Python25\lib\httplib.py", line 509, in read
  5.     return self._read_chunked(amt)
  6.   File "C:\Python25\lib\httplib.py", line 563, in _read_chunked
  7.     value += self._safe_read(chunk_left)
  8.   File "C:\Python25\lib\httplib.py", line 602, in _safe_read
  9.     chunk = self.fp.read(min(amt, MAXAMOUNT))
  10.   File "C:\Python25\lib\socket.py", line 328, in read
  11.     data = self._sock.recv(left)
  12. error: (10054, 'Connection reset by peer')


 
Comment gérer cette exception ?
 
Merci !!!


---------------
http://www.ypikay.com
n°2008905
Sve@r
Posté le 12-07-2010 à 22:23:44  profilanswer
 

erwan83 a écrit :

Code :
  1. error: (10054, 'Connection reset by peer')[/#ff0000]


 
Comment gérer cette exception ?
 
Merci !!!


 
Si tu regardes bien l'arbre des exceptions, tu verras que les exceptions héritent les unes des autres.
 
Exemple: pour gérer le cas 1/0, tu peux catcher
- ZeroDivisionError
- ArithmeticError
- StandardError
- Exception
- BaseException
Car toutes ces exceptions héritent les unes des autres.
 
Donc au pire tu catche BaseException (la racine de l'arbre) et là, tu devrais tout récupérer.

Code :
  1. try:
  2.    ...
  3. except BaseException:
  4.   ...


 
Ou alors, tu mets rien après except ce qui chopera, là aussi, tout  

Code :
  1. try:
  2.    ...
  3. except:
  4.   ...



---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  Qu'est-il à dire de cette erreur ? (URL)

 

Sujets relatifs
Passer une variable qui a un caractere & dans l'URLJFreeChart Erreur :" Duplicate items in 'columnKeys'."
[VBA] erreur 13Je cale sur les erreurs d'URL... ENCORE
VB6 Peut on faire arret sur toute erreur ?Erreur d'execution '1004'
[Résolut]JDBC/ ODBC erreur de connexionerreur Affichage tableau [firefox et explorer]
Une erreur à la compilation[Debutant] Python + MYSQL Python, erreur syntaxe dans requette MYSQL
Plus de sujets relatifs à : Qu'est-il à dire de cette erreur ? (URL)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR