[Python-es] Reintentar

Sergio Soto Núñez sotonez en gmail.com
Mie Ago 26 17:06:20 CEST 2015


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 <
ajsanchezsanz en gmail.com> wrote:

> for i in range(3):
>   print i
>
> On 26 August 2015 at 12:00, Yamila Moreno Suárez <yamila.ms en 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 <gvm2121 en 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 <oriolandresmartin en 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" <gvm2121 en 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 en python.org
>>>>> https://mail.python.org/mailman/listinfo/python-es
>>>>> FAQ: http://python-es-faq.wikidot.com/
>>>>>
>>>>>
>>>> _______________________________________________
>>>> Python-es mailing list
>>>> Python-es en python.org
>>>> https://mail.python.org/mailman/listinfo/python-es
>>>> FAQ: http://python-es-faq.wikidot.com/
>>>>
>>>>
>>>
>>> _______________________________________________
>>> Python-es mailing list
>>> Python-es en 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 en python.org
>> https://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>>
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20150826/5b098b0c/attachment.html>


Más información sobre la lista de distribución Python-es