Re: [Python-es] Módulo para automatizar tareas web
Carlos Zuniga <[email protected]>
| Newsgroups | gmane.comp.python.general.castellano |
|---|---|
| Message-ID | <[email protected]> |
2009/7/25 Arnau Sanchez <[email protected]>: > Buenas, > > Hace ya un tiempo que ando buscando un módulo Python que me permita simular > un navegador web con soporte para Javascript/AJAX. Hasta ahora, siempre que > lo he necesitado, he tirado de urllib2 + BeautifulSoup, pero la cantidad de > páginas en las que necesitas Javascript ó AJAX va creciendo sin remedio... > si le dedicas suficiente esfuerzo (y alguna vez lo he hecho) puedes analizar > el HTML, parsear el código Javascript, mandárselo a Spidermonkey (intérprete > Javascript), etc, pero el proceso es extremadamente tedioso (sin contar que > cualquier cambio en el código de la página te tira abajo el invento). > > Si no voy errado, librerías como mechanize, twill, scrapy y compañía no > soportan Javascript (bueno, scrapy parece que usa spidermonkey, pero fui > incapaz de encontrar documentación o ejemplos al respecto) > > Al final todos los caminos parecen llevar a librerías que controlan un > navegador (no me atrae la idea) o a Selenium (http://selenium.openqa.org/). > Pero por mucho que Selenium se pueda usar con Python, no quiero depender de > la máquina virtual Java, y a ser posible también querría evitar un esquema > cliente/servidor. Lo ideal sería una librería Python (multiplataforma) que > importes, uses y cierres, sin mayor historia, que sirva tanto de crawler > como de librería de testing. Algo que, en fin, te permitiera hacer cosas > como éstas: > > browser = Browser() > browser.load("http://server.org") > browser.fill("input[name=user]", "myuser") > browser.fill("input[name=password]", "mypassword") > browser.click("input[name=send]") > html = browser.get_html() > ... > > Añadiendo al lote jquery (para el control Javascript) y BeautifulSoup/lxml/ > pyquery/... (para parsear el HTML) creo que quedaría algo bastante potente. > He empezado a hacer algunas pruebas con pyQtWebKit (http://webkit.org/, > http://trac.webkit.org/wiki/QtWebKit) y los resultados son muy prometedores. > Qt no deja de ser una librería de tamaño considerable, pero creo que la > dependencia sería asumible (y las ventajas de tener a tu disposición el > framework Qt y WebKit, evidentes) > > En fin, después de todo este rollo la pregunta es: ¿puede resultar > interesante dedicarle tiempo a este proyecto? ¿aporta algo a lo ya > existente? > > saludos, > arnau > Personalmente me parece que como cada sitio web es diferente, de todos modos vas a tener que meterte a revisar el código de la página y como está hecha. Para eso, prefiero saltarme el javascript y utilizar curl de frente... Si lo quieres para usuarios no técnicos, tal vez podrías probar con iMacros para Firefox... https://addons.mozilla.org/es-ES/firefox/addon/3863 Saludos -- Linux Registered User # 386081 A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos de leer manuales. _______________________________________________ Lista de correo Python-es http://listas.aditel.org/listinfo/python-es FAQ: http://listas.aditel.org/faqpyes