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/