El 18 de julio de 2012 16:43, gabriel fernandez <[email protected]>escribió:
> Hola lista:
>
> tengo un problema y le he dado muchas vueltas pero no entiendo que pasa.
>
> Mi intención es acceder a una página de MundoAnuncio.com lo cual he logrado
> con estas tres librerias, urllib2, httplib y mechanize
>
> No hay problemas, obtengo la página cuando la quiero abrir. Sin embargo con
> cualquiera de las tres librerías no puedo obtener las cookies que deberían
> venir
> en las cabeceras http del response.
> Y también se que viene la cookie pues la obtengo con el complemento Tamper
> Data
> de FF. Que puede ser lo que sucede? es algo de la cabecera http? le
> faltará algun dato?
> les envío un ejemplo con mechanize ya que el resultado es el mismo con las
> otras dos.
>
> >>> import mechanize
> >>> br = mechanize.Browser()
> >>> br.set_handle_equiv(True)
> >>> br.set_handle_gzip(True)
> >>> br.set_handle_redirect(True)
> >>> br.set_handle_referer(True)
> >>> br.set_handle_robots(False)
> >>> br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686;
> en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
> >>> p = br.open("
> http://www.mundoanuncio.com/publicar/categoria/eroticos_profesionales_18.html
> ")
> >>> print p.info()
> Server: Apache
> P3P: policyref="http://www.mundoanuncio.com/w3c/p3p.xml", CP="NON DSP COR
> CURa"
> Content-Type: text/html
> X-Cache-Lookup: MISS from layer10.mundoanuncio.com:80
> Vary: Accept-Encoding
> Date: Wed, 18 Jul 2012 15:12:24 GMT
> Content-Length: 30946
> Connection: close
> Content-Type: text/html; charset=ISO-8859-1
> X-UA-Compatible: IE=EmulateIE7
>
Te falta añadir la gestión de cookies:
import cookielib
cookie = cookielib.LWPCookieJar()
br.set_cookiejar(cookie)
Desde este momento CookieJar se encargará de gestionar las cookies de las
sesiones del browser y te desentiendes. Dado que cookielib soporta
directamente la interfaz iterator, puedes recorrerla:
for index, cookie in enumarate(cookie):
print index, cookie
Cookielib está en la librería estándar (ha cambiado de nombre en python3,
ojo) y puedes usarla con mechanize, urllib2 y requests sin mayor problema.
Espero que te sirva.
Saludos
Alberto
_______________________________________________
Python-es mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/