Desconozco la finalidad de tu programa. Entiendo que tienes la necesidad de depurar y quieres llegar a ese punto para ver como responde tu programa. Puedes simplemente sacar a una función la ejecución de la llamada con urlib y devolver el código de respuesta. Así puedes reintentarlo.
Un saludo 2015-08-26 17:19 GMT+02:00 Gonzalo V <gvm2...@gmail.com>: > Gracias Sergio. La verdad es que no ha sido fácil aprender python sobre > todo si casi toda la info de calidad está en inglés y las traducciones son > de personas muy nobles que lo hacen sin interés. Algunas están traducidas > al mexicano, con sus modismos, otros en argentino, español, en fin... > Gracias por tu respuesta, había pensado hacerlo por ensayo e error ya que > encuentro que es una forma segura de hacer un codigo "a prueba de balas" > pero no sé cómo emular o simular un error 504, que son errores muy > inesperados. > ¿Sabes tu cómo simular un error 504 en python? > > Saludos, > Gonzalo > > El 26 de agosto de 2015, 11:06, Sergio Soto Núñez <soto...@gmail.com> > escribió: > >> Buenas Gonzalo, >> la verdad es que para llevar poco tiempo estás haciendo cosas muy >> interesante. >> >> Si me dejas que te de un consejo, siempre que tengas una duda lo mejor es >> abrir una consola (python o ipython) y realizar la prueba. Puedes tirar >> linea a linea hasta emular la situación que estás estudiando. >> >> Otra opción mas potente es utilizar un debugger (como ipdb [1]) para >> setear un break point. El intérprete parará en esa línea y podrás observar >> el valor de cada variable y estudiar el comportamiento. >> >> Te digo esto porque preguntas como las que has hecho se resuelven >> fácilmente tal y como han hecho algunos de los miembros, tres líneas de >> código y ejecutandolo. Y siempre aprenderás mucho más por ti mismo que >> preguntando. >> >> ¡Un saludo y ánimos en tu proyecto! >> >> [1] Un manual de uso de ipdb: >> https://pythonadventures.wordpress.com/tag/ipdb/ >> >> On Wed, Aug 26, 2015 at 12:07 PM, Alberto J. Sánchez Sanz < >> ajsanchezs...@gmail.com> wrote: >> >>> for i in range(3): >>> print i >>> >>> On 26 August 2015 at 12:00, Yamila Moreno Suárez <yamila...@gmail.com> >>> wrote: >>> >>>> i = 0 >>>> while i < 3: >>>> print(i) >>>> i += 1 >>>> >>>> output >> >>>> 0 >>>> 1 >>>> 2 >>>> >>>> >>>> >>>> >>>> 2015-08-26 11:47 GMT+02:00 Gonzalo V <gvm2...@gmail.com>: >>>> >>>>> Muchas Gracias Andres! >>>>> Tenia entendido que era While true daba el resultado . ¿Cómo lee el >>>>> intérprete while 1: Que reintente 1 sola vez? >>>>> ¿Cuál sería el código para reintentos controlados (que reintente 3 >>>>> veces, por ejemplo )? >>>>> Gracias! >>>>> >>>>> Saludos, >>>>> Gonzalo >>>>> >>>>> 2015-08-26 2:13 GMT-04:00 Oriol Andrés <oriolandresmar...@gmail.com>: >>>>> >>>>>> hola, puedes encerrar la funcion en un bucle while. >>>>>> while 1: >>>>>> response = urlopen >>>>>> if response.headers.code == 200: >>>>>> break >>>>>> On Aug 26, 2015 2:02 a.m., "Gonzalo V" <gvm2...@gmail.com> wrote: >>>>>> >>>>>>> Hola a todos. >>>>>>> Tengo un código que hace preguntas a un servidor y algunas veces >>>>>>> retorna un 504, el codigo lo maneja bien pero me gustaría que >>>>>>> reintentara. >>>>>>> ¿Alguien me puede ayudar? >>>>>>> el codigo es: >>>>>>> import urllib.request >>>>>>> import urllib.error >>>>>>> from bs4 import BeautifulSoup >>>>>>> import re, csv >>>>>>> from FuncionCsv import LlenarCsv >>>>>>> >>>>>>> >>>>>>> >>>>>>> fhand=open('isbn.txt') >>>>>>> #csvfile=open('ResultadoScrapping.csv', 'w', newline='') >>>>>>> for line in fhand: >>>>>>> try: >>>>>>> req=urllib.request.urlopen('XXXXXXXX'+line) >>>>>>> resp=req.read() >>>>>>> soup=BeautifulSoup(resp,'html.parser') >>>>>>> >>>>>>> origen=soup.find(string=re.compile("Origen: >>>>>>> ")).find_next().get_text() >>>>>>> nombre=soup.find(name="h1",itemprop="name").get_text() >>>>>>> >>>>>>> precioAhora=soup.find(name="p",class_="precioAhora").get_text() >>>>>>> d=soup.find(name="p",class_="stock").get_text() >>>>>>> disp=d.split() >>>>>>> except AttributeError: >>>>>>> disp="no encontrado" >>>>>>> nombre='' >>>>>>> origen='' >>>>>>> precioAhora='' >>>>>>> except urllib.error.HTTPError as e: >>>>>>> if e.getcode()==504: >>>>>>> disp = "sin respuesta del servidor" >>>>>>> print (e.getcode(),disp) >>>>>>> csvfile.close() >>>>>>> >>>>>>> print(line,nombre,origen,precioAhora,disp) >>>>>>> line1=line.split() >>>>>>> LlenarCsv('Resultado.csv',line1,nombre,origen,precioAhora,disp) >>>>>>> cierracsv() >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> Saludos, >>>>>>> Gonzalo >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Python-es mailing list >>>>>>> Python-es@python.org >>>>>>> https://mail.python.org/mailman/listinfo/python-es >>>>>>> FAQ: http://python-es-faq.wikidot.com/ >>>>>>> >>>>>>> >>>>>> _______________________________________________ >>>>>> Python-es mailing list >>>>>> Python-es@python.org >>>>>> https://mail.python.org/mailman/listinfo/python-es >>>>>> FAQ: http://python-es-faq.wikidot.com/ >>>>>> >>>>>> >>>>> >>>>> _______________________________________________ >>>>> Python-es mailing list >>>>> Python-es@python.org >>>>> https://mail.python.org/mailman/listinfo/python-es >>>>> FAQ: http://python-es-faq.wikidot.com/ >>>>> >>>>> >>>> >>>> >>>> -- >>>> Yamila Moreno Suárez >>>> http://dendarii.es >>>> http://moduslaborandi.net >>>> >>>> _______________________________________________ >>>> Python-es mailing list >>>> Python-es@python.org >>>> https://mail.python.org/mailman/listinfo/python-es >>>> FAQ: http://python-es-faq.wikidot.com/ >>>> >>>> >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es@python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >>> >> >> _______________________________________________ >> Python-es mailing list >> Python-es@python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > _______________________________________________ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > >
_______________________________________________ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/