[Python-es] PyCurl, libUrl ::, Logueo y autenticación en sitio web y navegar por diferentes paginas.
Israel Alberto Roldan Vega
israel.alberto.rv en gmail.com
Jue Dic 22 05:50:29 CET 2011
Use este código, con usuario de administrador que por obvias razones
no pongo en este mail, y si me funciono.
http://code.activestate.com/recipes/267255/
Me podrían explicar porque si funciona?
Y como lo adapto para lo que necesito, de favor.
Gracias!
Saludos,
Israel Alberto RV
El día 21 de diciembre de 2011 21:33, Israel Alberto Roldan Vega
<israel.alberto.rv en gmail.com> escribió:
> Que tal,
>
> Estoy intentando Loguearme a un sitio web (un sitio mio) por mdio de
> pycurl, pero nada.
>
> Cuando lo intento hacer en la salida me dice "Usted no está autorizado
> para visitar esta página."
> Ya he intentado varias formas y nada.
>
> Lo que necesito son 2 cosas:
> 1. La mas importante lograr hacer el login en el sitio web atraves de pycurl.
> 2. Si logro loguearme, quiero navegar por las paginas nosotros,
> contacto, etc., pero logueado, osea sin salirme de mi sesión.
>
> Como logro esto ya que he estado en google mucho tiempo y no logro
> encontrar nada de documentación y la documentación que hay, ya lo
> probé y nada.
> Sin embargo cree un php para loguearme y si funciona el script, esto
> se comprueba si se descomenta la linea "url =
> 'http://propuesta.rovisoft.net/login.php'"
>
> http://propuesta.rovisoft.net/sinredes/user
> http://propuesta.rovisoft.net/login.php
>
>
> import pycurl
> import urllib
> import StringIO
>
>
> web_page = StringIO.StringIO()
> dir_base = '/home/israel/misObras/Python/'
> url = 'http://propuesta.rovisoft.net/sinredes/user'
> #url = 'http://propuesta.rovisoft.net/login.php'
> post_vars = urllib.urlencode( {
> 'name': 'hola',
> 'pass': 'holahola',
> 'form_id': 'user_login',
> 'form_build_id' : 'form-iN6ViGbE2_tW9bIWcRtxctc4HjIETqAOkxDuWaRjB_c',
> } )
>
>
> c = pycurl.Curl()
> c.setopt( pycurl.URL, url )
> c.setopt( pycurl.POSTFIELDS, post_vars )
> c.setopt( pycurl.FOLLOWLOCATION, 1 )
> c.setopt( pycurl.MAXREDIRS, 20 )
> c.setopt( pycurl.WRITEFUNCTION, web_page.write )
> c.perform()
> c.close()
>
>
> f = open( dir_base + 'salida2.html', 'wb' )
> web_page_str = web_page.getvalue().decode( 'utf-8' )
> if web_page_str.strip():
> f.write( web_page_str.encode( 'utf-8' ) )
> else:
> f.write( "No se encontro nada." )
> f.close()
>
>
> print( "Finalizo con Exito la Ejecucion." )
>
>
>
>
>
> Saludos,
> Israel Alberto RV
Más información sobre la lista de distribución Python-es