Hola<br><br>Suena interesante, estaría bien darle un vistazo :D<br><br>La documentación para saber como utilizarlo es a partir de la de curl y sobretodo libcurl<br><br><a href="http://curl.haxx.se/docs/manual.html">http://curl.haxx.se/docs/manual.html</a><br>
<a href="http://curl.haxx.se/libcurl/c/libcurl-tutorial.html">http://curl.haxx.se/libcurl/c/libcurl-tutorial.html</a><br><br>Las opciones disponibles las puedes ver en: <br><a href="http://curl.haxx.se/libcurl/c/curl_easy_setopt.html">http://curl.haxx.se/libcurl/c/curl_easy_setopt.html</a><br>
(supongo que tendrías que mirar el código de pycurl por si hay alguna no implementada, yo no lo he mirado)<br><br>un ejemplo (con json, no xml) de como loginarte con cookies seria:<br><br>import os.path<br>import time<br>
import pycurl<br>import urllib<br>import StringIO<br><br>url = '<a href="http://localhost/login/">http://localhost/login/</a>'<br><br>cookie_file = os.path.join('tu_ruta', 'cookies.txt')<br><br>data = urllib.urlencode({ <br>
'username': 'usuario',<br> 'password': 'elquesea'<br> })<br><br><br>output = StringIO.StringIO()<br>header = StringIO.StringIO()<br><br># creas el objeto<br>c = pycurl.Curl()<br>
<br># le pones las opciones que necesites (ver el manual, sobretodo de libcurl)<br><br>c.setopt(pycurl.URL, url)<br>c.setopt(pycurl.VERBOSE, 1)<br>c.setopt(pycurl.HTTPHEADER, [<br> "X-Requested-With:XMLHttpRequest", <br>
"Accept: aplication/json"])<br>c.setopt(pycurl.POSTFIELDS, data)<br>c.setopt(pycurl.COOKIEFILE, cookie_file)<br>c.setopt(pycurl.WRITEFUNCTION, output.write)<br>c.setopt(pycurl.HEADERFUNCTION, header.write)<br>
<br># llamas a la url<br>c.perform()<br><br># Compruebas cabeceras y lo que necesites<br>print '-'*10<br>print "URL ", c.getinfo(pycurl.EFFECTIVE_URL)<br>print "HTTP-code:", c.getinfo(c.HTTP_CODE)<br>
print "Total-time:", c.getinfo(c.TOTAL_TIME)<br>print "Download speed: %.2f bytes/second" % c.getinfo(c.SPEED_DOWNLOAD)<br>print "Document size: %d bytes" % c.getinfo(c.SIZE_DOWNLOAD)<br>print "Effective URL:", c.getinfo(c.EFFECTIVE_URL)<br>
print "Content-type:", c.getinfo(c.CONTENT_TYPE)<br>print "Namelookup-time:", c.getinfo(c.NAMELOOKUP_TIME)<br>print "Redirect-time:", c.getinfo(c.REDIRECT_TIME)<br>print "Redirect-count:", c.getinfo(c.REDIRECT_COUNT)<br>
epoch = c.getinfo(c.INFO_FILETIME)<br>print "Filetime: %d (%s)" % (epoch, time.ctime(epoch))<br>print '-'*10<br><br># Siempre va bien leer el header a pelo<br><br>
print header.getvalue()<br><br>#Y por ultimo la respuesta guardada en la variable output<br><br>value = output.getvalue()<br>if value.strip():<br> print value<br><br>c.close()<br><br>Eso es todo, aunque hay que tener en cuenta el csrftoken, https y el resto de medidas de seguridad que tenga el webchat en cuestión<br>
<br>Ya nos contaras como te va!!<br><br><br>Un saludo<br><br>-- <br>//////////////////////////////////////////////////////////////////////////<br>Eduard Díaz<br><a href="http://www.scopia.es">www.scopia.es</a><br>SCOPIA VISUAL INTERFACES SYSTEMS S.L.<br>
Barcelona<br>Tel. 625 055 126, 933 171 771<br>//////////////////////////////////////////////////////////////////////////<br><br><br><div class="gmail_quote">El 13 de enero de 2011 16:47, Raúl Alexis Betancor Santana <span dir="ltr"><<a href="mailto:rbetancor@gmail.com">rbetancor@gmail.com</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div>Hola a todos,</div><div><br></div><div>estoy intentando hacer un pequeño script-pasarela, que se conecte a un</div>
<div>chat web y me pase los mensajes que allí se publican a mi servidor</div><div>jabber.</div><div><br>
</div><div>La parte jabber ya la tengo terminada, ahora me falta la parte de</div><div>conexión al chat web.</div><div><br></div><div>La web a la que quiero conectar usa Ajax-Chat, lo cual facilita</div><div>bastante las cosas, puesto que una vez autenticado, solo tengo que</div>
<div>consultar una URL concreta y la respuesta es siempre un xml con los</div><div>mensajes nuevos.</div><div><br></div><div>El problema viene en que necesito hacer un HTTPRequest tipo POST a la</div><div>url de loging y guardar todas las cookies, para luego seguir</div>
<div>reenviandolas en cada petición a la url de los mensajes.</div><div><br></div><div>He estado mirando pycurl (con curl a pelo no consigo que me guarde las</div><div>cookies en un fichero), pero la documentación es pésima.</div>
<div><br></div><div>¿alguien tiene algún ejemplo o sabe donde pillarlo?, buscando por</div><div>google, he encontrado varios, en todos los casos, no consigo guardar</div><div>las cookies que devuelve el site tras la autenticación correcta.</div>
<div><br></div><div>Saludos</div><div><br></div>
<br>_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org">Python-es@python.org</a><br>
<a href="http://mail.python.org/mailman/listinfo/python-es" target="_blank">http://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br>
<br></blockquote></div><br>