[PYTH](résolu) URLLIB Blocage mot de passe comment détecter

URLLIB Blocage mot de passe comment détecter [PYTH] (résolu) - Python - Programmation

Marsh Posté le 14-05-2016 à 21:25:27    

Bonjour, je télécharge des images depuis internet  
code html <IMG SRC etc etc> et je télécharge l'image avec  

Code :
  1. if ecrire_image == "1" and erreur_image == "0":
  2. try:
  3.  fd = urllib2.urlopen(nom_image)
  4. except IOError, eObject:
  5.  erreur_image = "1"
  6. except ValueError, eObject:
  7.  erreur_image = "1"
  8. except:
  9.  erreur_image = "1"
  10. else:
  11.  z=3
  12. if erreur_image == "1":
  13.  erreur_image = "0"
  14.  try:
  15.   fd = urllib.urlopen(nom_image)
  16.  except:
  17.   erreur_image = "1"
  18.  else:
  19.   z=3
  20. if erreur_image == "0" and ecrire_image == "1":
  21.  try:
  22.   im = Image.open(StringIO(fd.read()))
  23.  except IOError, eObject:
  24.   erreur_image = "1"
  25.  else:
  26.   z=3
  27. if erreur_image == "0" and ecrire_image == "1":
  28.  hauteur = str(im.size[0])
  29.  largeur = str(im.size[1])
  30. elif erreur_image =="1":
  31.  z=3
  32. if erreur_image == "0" and ecrire_image == "1" and ...... etc etc


 
Le code est un peu mis à l'arrache mais c'est à peu pres ça
en cas d'erreur avec URLLIB je lance une boucle qui utilise URLLIB2
 
ERREUR rencontrée de temps en temps qui arrête tout:
Vous devez taper votre nom utilisateur pour accéder à http machin.com
je tape ENTREE
Merci de taper le mot de passe pour accéder à http machin.com
 
Donc à un moment quelque part dans ces boucles j'ai ce message qui s'affiche mais ça ne génère aucune ERREUR PYTHON, sauf que ça arrête tout  :p  :fou:  
 
Une idée ??


Message édité par erwan83 le 02-06-2016 à 14:42:52
Reply

Marsh Posté le 14-05-2016 à 21:25:27   

Reply

Marsh Posté le 14-05-2016 à 22:37:39    

Tu peux donner un exemple concret de site? Selon cet article (en français) urllib2 retourne un code d'erreur (401) en cas de nécessité d'authentification.

Reply

Marsh Posté le 15-05-2016 à 06:29:56    

je vais attendre que l'erreur se reproduise et je reviens


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

Marsh Posté le 18-05-2016 à 19:16:44    

voila l'adresse d'un site qui me balance une fenetre "mot de passe" sous mozilla et qui bloque Python au bout de la Nème image:
 
https://nddlagirdesobeir.noblogs.org
 
la dernière réaction de python :  
(désolé je mets toutes les images qu'il a attrapées)
pour info, la description est lue avant l'image: si j'ai une image dans le code de la page, je recherche un texte autour ou un titre ou une description. ensuite je télécharge l'image
 

Code :
  1. http://www.observatoiredessubventi [...] epense.jpg
  2. 900 000 euros pour la propagande de l\  aeroport de Notre-Dame-des-Landes
  3. http://img.scoop.it/Vw-WE-k4yGtoG7 [...] kmuBWtceBJ
  4. Un groupe de photographes anti #NDDL  Videos_NDL  Scoop.it
  5. http://img.scoop.it/Zw2btjbuME3XBx [...] kmuBWtceBJ
  6. Narita, Notre-Dame-des-landes - www.la-bas.org  ACIPA  Scoop.it
  7. http://mvistatic.com/photosmvi/201 [...] x_512_.jpg
  8. FestiZad : 8 000 personnes selon les gendarmes, 30 000 selon les organisateurs Photo PO - Olivier Lanrivain
  9. http://www.sudouest.fr/images/2013 [...] 60x306.jpg
  10. La banderole deployee au Bellevue, samedi.
  11. http://img.scoop.it/eZUHAnr0XCpetV [...] kmuBWtceBJ
  12. Duflot a Ayrault:  meme si t\ as pas un gros aeroport, on t\ aimera quand meme ACIPA  Scoop.it
  13. http://img.scoop.it/yvBYYjb_5L1k7u [...] kmuBWtceBJ
  14. ┬áNotre-Dame-des-Luttes┬á , un documentaire intimiste sur la resistance a l aeroport - Rue89  ACIPA  Scoop.it
  15. http://mvistatic.com/photosmvi/201 [...] x_512_.jpg
  16. Action de Greenpeace a Paris :
  17. http://s1.lemde.fr/image/2012/11/1 [...] d55af7.jpg
  18. Manifestation a Paris, le 10 novembre, contre l\ aeroport de Notre-Dame-des-Landes, un projet porte depuis des annees par l\ ancien maire de Nantes et actuel premier ministre, Jean-Marc Ayrault.
  19. http://www.impots-economie.com/ima [...] licier.jpg
  20. Notre Dame des Landes dispositif policier Combien coute le dispositif policier de Notre Dame des Landes ?
  21. http://mvistatic.com/photosmvi/201 [...] x_512_.jpg
  22. Notre-Dame-des-Landes. Jacques Auxiette :
  23. http://mvistatic.com/photosmvi/201 [...] x_512_.jpg
  24. Un retrait des gendarmes de Notre-Dame-des-Landes?
  25. http://md0.libe.com/photo/477532/
  26. Une barricade sur le site de Notre-Dame-des-Landes, mardi 11 decembre.
  27. http://mvistatic.com/photosmvi/201 [...] x_512_.jpg
  28. Au conseil general, l\ evolution de la situation a Notre-Dame-des-Landes inquiete les uns, exaspere les autres. Frederic GIROU
  29. http://static.guim.co.uk/sys-images/Guardian/Pix/pictures/2012/12/10/1355143243421/French-riot-police-near-N-008.jpg
  30. Police anti-emeutes francaises pres de Nantes
  31. http://pays-de-la-loire.france3.fr [...] s/top_big/public/assets/images/000_par7411676.jpg
  32. ® Damien Meyer / AFP
  33. http://www.lexpress.fr/medias/2309 [...] perations-continue-on-land-that-will-become-the-new-airport-in-notre-dame-des-landes.jpg
  34. Nouvelle manifestation contre l\ aeroport Notre-Dame-des-Landes
  35. http://mvistatic.com/photosmvi/201 [...] x_512_.jpg
  36. Thierry Creux.
  37. http://images.midilibre.fr/images/ [...] 10x255.jpg
  38. La caravane s\ est installee place Sainte-Catherine pour dix jours.
  39. http://referentiel.nouvelobs.com/file/4851409.jpg
  40. L\ opposition institutionnelle au projet d\ aeroport de Notre-Dame-des-Landes a denonce samedi l\ illusion  d\ un dialogue au sein de la commission mise en place par le Premier ministre Jean-Marc Ayrault, menacant de ne pas y participer si
  41. celle-ci ne peut pas aborder le bien-fonde meme du projet.br /br /br /br / (c) Afp
  42. http://midi-pyrenees.france3.fr/si [...] s/top_big/public/assets/images/capitole.jpg
  43. Les manifestants sont restes a l exterieur du Capitole ┬® Pascal Rivere / France 3 Midi-Pyrenees
  44. Enter username for Restricted at www.midinews.com:

Reply

Marsh Posté le 18-05-2016 à 19:53:39    

erwan83 a écrit :

voila l'adresse d'un site qui me balance une fenetre "mot de passe" sous mozilla


Effectivement, mais c'est pas pour le site mais pour une seule image: http://www.midinews.com/data/image [...] b7d427.jpg
Selon l'article en haut la lib est censée retourner un code d'erreur qu'on peut utiliser pour ignorer cette image - je testerai si j'ai le temps (et si je m'en sors avec Python que je ne maîtrise pas).

 

Par contre, tu es sûr que c'est légal ton truc? :o

 

EDIT: Python 2 ou 3?

Message cité 1 fois
Message édité par rat de combat le 18-05-2016 à 20:13:48
Reply

Marsh Posté le 18-05-2016 à 20:46:53    

rat de combat a écrit :


Par contre, tu es sûr que c'est légal ton truc? :o  
EDIT: Python 2 ou 3?


 
Google est-il légal ?
Warffff
Python 2.7.6
 

Code :
  1. if ecrire_image == "1" and erreur_image == "0":
  2.                                                     try:
  3.                                                         fd = urllib2.urlopen(nom_image)
  4.                                                     except IOError, eObject:
  5.                                                         erreur_image = "1"
  6.                                                     except ValueError, eObject:
  7.                                                         erreur_image = "1"
  8.                                                     except:
  9.                                                         erreur_image = "1"
  10.                                                     else:
  11.                                                         z=3
  12.                                                     if erreur_image == "1":
  13.                                                         erreur_image = "0"
  14.                                                         try:
  15.                                                             fd = urllib.urlopen(nom_image)
  16.                                                         except:
  17.                                                             erreur_image = "1"
  18.                                                         else:
  19.                                                             z=3
  20.                                                     if erreur_image == "0" and ecrire_image == "1":
  21.                                                         try:
  22.                                                             im = Image.open(StringIO(fd.read()))
  23.                                                         except IOError, eObject:
  24.                                                             erreur_image = "1"
  25.                                                         else:
  26.                                                             z=3


 
C'est probablement dans ce pack que se passe le blocage. J'avais déjà des problèmes avec urllib2 pour attraper des images alors je suis passé par urllib qui me renvoie moins d'erreurs.

Reply

Marsh Posté le 18-05-2016 à 20:47:02    

C'est le répertoire data qui est protégé par un htacess, pas l"image.
 
Suffit d'ignorer le répertoire, et dans le script suffit d'un délai pour passer à la suivante si la requête dure trop longtemps devrait faire l'affaire.


---------------
On croit souvent avoir vu le fond de la stupidité humaine, et il parfois nécessaire qu'on vous rappelle qu'elle n'a pas de fond.
Reply

Marsh Posté le 18-05-2016 à 20:47:30    

Bon ben c'est facile ce language...
 
J'ai utilisé http://www.pythonforbeginners.com/ [...] -in-python et Python 2.7, le code suivant fonctionne très bien, si il y a une erreur l'image est simplement ignorée. Je précise que c'est du code de débutant (même pas :o ), c'est juste pour prouver que ça marche.
 

Code :
  1. from urllib2 import Request, urlopen, URLError
  2.  
  3. import re
  4.  
  5. liens = ["https://www.google.fr/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png",
  6. "http://www.midinews.com/data/images/2012/2311201250afb0bb7d427.jpg",
  7. "http://s.pythonforbeginners.com/static/img/pfb_logo.png" ]
  8.  
  9. for l in liens:
  10.     print "downloading", l
  11.  
  12.     req = Request(l)
  13.  
  14.     try:
  15.         response = urlopen(req)
  16.  
  17.     except URLError, e:
  18.  
  19.         if hasattr(e, 'reason'):
  20.             print 'We failed to reach a server.'
  21.             print 'Reason: ', e.reason
  22.  
  23.         elif hasattr(e, 'code'):
  24.             print 'The server could not fulfill the request.'
  25.             print 'Error code: ', e.code
  26.     else:
  27.         print "got it!"
  28.         m = re.search('(?<=/)[^/]+$', l)
  29.         file = m.group(0)
  30.         print "saving in ", file
  31.         fh = open(file, "wb" )
  32.         fh.write(response.read())
  33.         fh.close()
  34.  
  35. print "fin"


 

Code :
  1. downloading https://www.google.fr/images/brandi [...] 2x92dp.png
  2. got it!
  3. saving in  googlelogo_color_272x92dp.png
  4. downloading http://www.midinews.com/data/image [...] b7d427.jpg
  5. We failed to reach a server.
  6. Reason:  Unauthorized
  7. downloading http://s.pythonforbeginners.com/static/img/pfb_logo.png
  8. got it!
  9. saving in  pfb_logo.png
  10. fin


 
Remarque: Dans notre cas "We failed to reach a server." c'est pas vraiment vrai mais peu importe, c'est du code que j'ai copié et qu'il serait facile de corriger.

Reply

Marsh Posté le 18-05-2016 à 20:51:59    

Intéressant effectivement...
On va dire que le sujet est résolu !
Merci


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

Marsh Posté le 18-05-2016 à 21:26:07    

J'étais trop restrictif sur les types d'erreur.
 

Code :
  1. try:
  2.     im = Image.open(StringIO(fd.read()))
  3. except IOError, eObject:
  4.     erreur_image = "1"
  5. else:
  6. ###tout va bien et je me fais baiser car j'ai même pas mis un autre except, même vide


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

Marsh Posté le 18-05-2016 à 21:26:07   

Reply

Marsh Posté le 30-05-2016 à 18:12:52    

Bon me revoilà j'ai encore un problème !
 
Je suis passé à Python 2.7.11 (rien de révolutionnaire)
 
Sauf que :
 
except URLError, eObject:
NameError: name 'URLError' is not defined

 
Normalement dans le code URLError devrait être coloré mais là il reste en noir, signe évident que Python ne le reconnait plus !!!!!
 
Any idea ?


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

Marsh Posté le 30-05-2016 à 18:41:40    

Je vois pas pourquoi il te jetterait pas une erreur à la face à l'import si URLError n'existait pas.
 
T'es sûr que tu l'as bien importé au moins ?


---------------
On croit souvent avoir vu le fond de la stupidité humaine, et il parfois nécessaire qu'on vous rappelle qu'elle n'a pas de fond.
Reply

Marsh Posté le 30-05-2016 à 19:04:39    

Heu.... Suis obligé de taper:
from urllib2 import URLError ??
 
import urllib2 ne suffit pas ?
 
 
Je sens que je vais me faire taper dessus


Message édité par erwan83 le 30-05-2016 à 19:05:03

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

Marsh Posté le 30-05-2016 à 19:51:20    

Bah oui  :D  
 
Mais si tu veux passer par urllib2 (sans importer URLError), faudra que tu écrives urllib2.URLError à la place, à toi de voir, mais le 1er est plus court à écrire.
 


---------------
On croit souvent avoir vu le fond de la stupidité humaine, et il parfois nécessaire qu'on vous rappelle qu'elle n'a pas de fond.
Reply

Marsh Posté le 30-05-2016 à 19:52:47    

Yes


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

Sujets relatifs:

Leave a Replay

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