<div dir="ltr"><div class="gmail_default" style="font-family:courier new,monospace;color:#000000">Desconozco la finalidad de tu programa.</div><div class="gmail_default" style="font-family:courier new,monospace;color:#000000">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.</div><div class="gmail_default" style="font-family:courier new,monospace;color:#000000"><br></div><div class="gmail_default" style="font-family:courier new,monospace;color:#000000">Un saludo</div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-08-26 17:19 GMT+02:00 Gonzalo V <span dir="ltr"><<a href="mailto:gvm2121@gmail.com" target="_blank">gvm2121@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>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...<br></div><div>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.<br></div></div>¿Sabes tu cómo simular un error 504 en python?<br></div><div class="gmail_extra"><br clear="all"><div><div>Saludos,<br>Gonzalo</div></div><div><div class="h5">
<br><div class="gmail_quote">El 26 de agosto de 2015, 11:06, Sergio Soto Núñez <span dir="ltr"><<a href="mailto:sotonez@gmail.com" target="_blank">sotonez@gmail.com</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Buenas Gonzalo, <br>la verdad es que para llevar poco tiempo estás haciendo cosas muy interesante.<br><br>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.<br><br>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.<br><br>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.<br><br>¡Un saludo y ánimos en tu proyecto!<br><br>[1] Un manual de uso de ipdb: <a href="https://pythonadventures.wordpress.com/tag/ipdb/" target="_blank">https://pythonadventures.wordpress.com/tag/ipdb/</a><br></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Aug 26, 2015 at 12:07 PM, Alberto J. Sánchez Sanz <span dir="ltr"><<a href="mailto:ajsanchezsanz@gmail.com" target="_blank">ajsanchezsanz@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">for i in range(3):<div> print i</div></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On 26 August 2015 at 12:00, Yamila Moreno Suárez <span dir="ltr"><<a href="mailto:yamila.ms@gmail.com" target="_blank">yamila.ms@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div>i = 0<br></div>while i < 3:<br></div> print(i)<br></div> i += 1<br><br></div>output >><br>0<br>1<br>2<br><br><div><br><br></div></div><div class="gmail_extra"><div><div><br><div class="gmail_quote">2015-08-26 11:47 GMT+02:00 Gonzalo V <span dir="ltr"><<a href="mailto:gvm2121@gmail.com" target="_blank">gvm2121@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Muchas Gracias Andres!<div>Tenia entendido que era While true daba el resultado . ¿Cómo lee el intérprete while 1: Que reintente 1 sola vez? </div><div>¿Cuál sería el código para reintentos controlados (que reintente 3 veces, por ejemplo )?</div><div>Gracias!</div></div><div class="gmail_extra"><br clear="all"><div><div>Saludos,<br>Gonzalo</div></div><div><div>
<br><div class="gmail_quote">2015-08-26 2:13 GMT-04:00 Oriol Andrés <span dir="ltr"><<a href="mailto:oriolandresmartin@gmail.com" target="_blank">oriolandresmartin@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p>hola, puedes encerrar la funcion en un bucle while.<br>
while 1:<br>
response = urlopen<br>
if response.headers.code == 200:<br>
break</p>
<div class="gmail_quote"><div><div>On Aug 26, 2015 2:02 a.m., "Gonzalo V" <<a href="mailto:gvm2121@gmail.com" target="_blank">gvm2121@gmail.com</a>> wrote:<br type="attribution"></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr"><div><div><div>Hola a todos.<br></div>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.<br></div>¿Alguien me puede ayudar?<br></div>el codigo es:<br><div style="font-size:12.8px"><div>import urllib.request</div><div>import urllib.error</div><div>from bs4 import BeautifulSoup</div><div>import re, csv</div><div>from FuncionCsv import LlenarCsv</div><div><br></div><div><br></div><div><br></div><div>fhand=open('isbn.txt')</div><div>#csvfile=open('ResultadoScrapping.csv', 'w', newline='')</div><div>for line in fhand:</div><div> try:<br> req=urllib.request.urlopen('XXXXXXXX'+line)</div><div> resp=req.read()</div><div> soup=BeautifulSoup(resp,'html.parser')</div><div> <br></div><div> origen=soup.find(string=re.compile("Origen: ")).find_next().get_text()</div><div> nombre=soup.find(name="h1",itemprop="name").get_text()</div><div> precioAhora=soup.find(name="p",class_="precioAhora").get_text()</div><div> d=soup.find(name="p",class_="stock").get_text()</div><div> disp=d.split()</div><div> except AttributeError:</div><div> disp="no encontrado"</div><div> nombre=''</div><div> origen=''</div><div> precioAhora=''</div><div> except urllib.error.HTTPError as e:</div><div> if e.getcode()==504:</div><div> disp = "sin respuesta del servidor"</div><div> print (e.getcode(),disp)</div><div> csvfile.close()</div><div><br></div><div> print(line,nombre,origen,precioAhora,disp)</div><div> line1=line.split()</div><div> LlenarCsv('Resultado.csv',line1,nombre,origen,precioAhora,disp)</div></div><div style="font-size:12.8px">cierracsv()<br></div><br><div><div><div><div><div><div><br><br><br clear="all"><div><div>Saludos,<br>Gonzalo</div></div>
</div></div></div></div></div></div></div>
<br></div></div>_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-es" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" rel="noreferrer" target="_blank">http://python-es-faq.wikidot.com/</a><br>
<br></blockquote></div>
<br>_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-es" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" rel="noreferrer" target="_blank">http://python-es-faq.wikidot.com/</a><br>
<br></blockquote></div><br></div></div></div>
<br>_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-es" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" rel="noreferrer" target="_blank">http://python-es-faq.wikidot.com/</a><br>
<br></blockquote></div><br><br clear="all"><br></div></div><span><font color="#888888">-- <br><div><div dir="ltr">Yamila Moreno Suárez<br><a href="http://dendarii.es" target="_blank">http://dendarii.es</a><div><a href="http://moduslaborandi.net" target="_blank">http://moduslaborandi.net</a></div></div></div>
</font></span></div>
<br>_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-es" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" rel="noreferrer" target="_blank">http://python-es-faq.wikidot.com/</a><br>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-es" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" rel="noreferrer" target="_blank">http://python-es-faq.wikidot.com/</a><br>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-es" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" rel="noreferrer" target="_blank">http://python-es-faq.wikidot.com/</a><br>
<br></blockquote></div><br></div></div></div>
<br>_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org">Python-es@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-es" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" rel="noreferrer" target="_blank">http://python-es-faq.wikidot.com/</a><br>
<br></blockquote></div><br></div>