Diapositivas correspondientes a la parte sobre recopilación de datos con screen scraping del curso de extensión universitaria "Cloud Computing. Desarrollo de Aplicaciones y Minería Web", celebrado en la Escuela Universitaria de Ingeniería Informática de Oviedo
Este documento presenta un seminario sobre AJAX impartido por Jorge Nieves el 1 de diciembre de 2010. Se explica que AJAX es una técnica para crear aplicaciones web interactivas mediante la combinación de JavaScript, HTML, CSS y XML. Se describen los pasos para implementar AJAX, incluyendo el uso del objeto XMLHttpRequest para realizar peticiones asíncronas al servidor y actualizar partes de la página. Finalmente, se discuten ventajas y desventajas de AJAX y se presentan ejemplos de su uso.
El documento explica qué es AJAX, describiendo que permite actualizar partes de una página web sin recargar la página completa mediante el objeto XMLHttpRequest. También describe los métodos y propiedades de este objeto como open, send y readyState que permiten realizar peticiones asíncronas al servidor y procesar la respuesta con JavaScript. Finalmente, menciona algunos errores comunes al utilizar AJAX como no informar al usuario sobre el estado de la carga o no tener en cuenta que la interacción es asíncrona.
Introducción a los lenguajes de programación de la plataforma Web 2.0: AjaxDavid Arango
Este documento introduce los lenguajes de programación de la plataforma Web 2.0, en particular Ajax. Explica qué es Ajax y cómo funciona mediante el uso de XMLHttpRequest para cargar datos de forma asincrónica. También cubre ejemplos prácticos de Ajax, buenas prácticas de desarrollo como separación de capas y accesibilidad, y el uso de Ajax con frameworks como Drupal y Ruby on Rails.
Este documento describe cómo imprimir y enviar correos electrónicos desde Flash usando ActionScript. Explica cómo usar una clase PHP para enviar correos electrónicos desde Flash mediante la clase URLVariables y cómo usar la clase PrintJob para imprimir contenido mediante sus métodos start(), addPage() y send(). También cubre el uso de try/catch para controlar errores.
Ajax, acrónimo de Asynchronous JavaScript And XML (JavaScript asíncrono y XML), es una técnica de desarrollo web para crear aplicaciones.
Ajax es una tecnología asíncrona, en el sentido de que los datos adicionales se solicitan al servidor y se cargan en segundo plano sin interferir con la visualización ni el comportamiento de la página.
Ajax es una técnica válida para múltiples plataformas y utilizable en muchos sistemas operativos y navegadores dado que está basado en estándares abiertos como JavaScript y Document Object Model
1
(DOM).
Estas aplicaciones se ejecutan en el navegador (cliente) de los usuarios.
Diapositivas correspondientes a la parte de la plataforma de desarrollo Ruby del curso de extensión universitaria "Desarrollo Web Avanzado", celebrado en la Escuela Universitaria de Ingeniería Informática de Oviedo
Diapositivas correspondientes a la parte de Web en tiempo real, del curso de extensión universitaria "Cloud Computing. Desarrollo de Aplicaciones y Minería Web", celebrado en la Escuela Universitaria de Ingeniería Informática de Oviedo
Diapositivas correspondientes a la parte sobre construcción de Mashups con Y! Pipes del curso de extensión universitaria "Cloud Computing. Desarrollo de Aplicaciones y Minería Web", celebrado en la Escuela Universitaria de Ingeniería Informática de Oviedo
Este documento presenta un seminario sobre AJAX impartido por Jorge Nieves el 1 de diciembre de 2010. Se explica que AJAX es una técnica para crear aplicaciones web interactivas mediante la combinación de JavaScript, HTML, CSS y XML. Se describen los pasos para implementar AJAX, incluyendo el uso del objeto XMLHttpRequest para realizar peticiones asíncronas al servidor y actualizar partes de la página. Finalmente, se discuten ventajas y desventajas de AJAX y se presentan ejemplos de su uso.
El documento explica qué es AJAX, describiendo que permite actualizar partes de una página web sin recargar la página completa mediante el objeto XMLHttpRequest. También describe los métodos y propiedades de este objeto como open, send y readyState que permiten realizar peticiones asíncronas al servidor y procesar la respuesta con JavaScript. Finalmente, menciona algunos errores comunes al utilizar AJAX como no informar al usuario sobre el estado de la carga o no tener en cuenta que la interacción es asíncrona.
Introducción a los lenguajes de programación de la plataforma Web 2.0: AjaxDavid Arango
Este documento introduce los lenguajes de programación de la plataforma Web 2.0, en particular Ajax. Explica qué es Ajax y cómo funciona mediante el uso de XMLHttpRequest para cargar datos de forma asincrónica. También cubre ejemplos prácticos de Ajax, buenas prácticas de desarrollo como separación de capas y accesibilidad, y el uso de Ajax con frameworks como Drupal y Ruby on Rails.
Este documento describe cómo imprimir y enviar correos electrónicos desde Flash usando ActionScript. Explica cómo usar una clase PHP para enviar correos electrónicos desde Flash mediante la clase URLVariables y cómo usar la clase PrintJob para imprimir contenido mediante sus métodos start(), addPage() y send(). También cubre el uso de try/catch para controlar errores.
Ajax, acrónimo de Asynchronous JavaScript And XML (JavaScript asíncrono y XML), es una técnica de desarrollo web para crear aplicaciones.
Ajax es una tecnología asíncrona, en el sentido de que los datos adicionales se solicitan al servidor y se cargan en segundo plano sin interferir con la visualización ni el comportamiento de la página.
Ajax es una técnica válida para múltiples plataformas y utilizable en muchos sistemas operativos y navegadores dado que está basado en estándares abiertos como JavaScript y Document Object Model
1
(DOM).
Estas aplicaciones se ejecutan en el navegador (cliente) de los usuarios.
Diapositivas correspondientes a la parte de la plataforma de desarrollo Ruby del curso de extensión universitaria "Desarrollo Web Avanzado", celebrado en la Escuela Universitaria de Ingeniería Informática de Oviedo
Diapositivas correspondientes a la parte de Web en tiempo real, del curso de extensión universitaria "Cloud Computing. Desarrollo de Aplicaciones y Minería Web", celebrado en la Escuela Universitaria de Ingeniería Informática de Oviedo
Diapositivas correspondientes a la parte sobre construcción de Mashups con Y! Pipes del curso de extensión universitaria "Cloud Computing. Desarrollo de Aplicaciones y Minería Web", celebrado en la Escuela Universitaria de Ingeniería Informática de Oviedo
Este documento describe cómo extraer datos de páginas web mediante screen scraping utilizando diferentes lenguajes de programación como Ruby y Java. Explica las herramientas disponibles como HTree, REXML, Hpricot y Mechnize y cómo usarlas para simular el comportamiento humano al navegar por páginas y extraer datos de forma automatizada. También cubre técnicas como el uso de proxies y Tor para realizar peticiones de forma anónima.
Este documento presenta un curso de HTML5. Incluye información sobre el instructor Carlos Azaustre, un temario con 10 temas que cubren etiquetas HTML5, CSS3, responsive design, JavaScript, jQuery y más. También incluye el horario del curso distribuido en 4 días con sesiones por la mañana y tarde, y descripciones breves de los temas principales a cubrir.
El documento describe el funcionamiento del navegador web y el protocolo HTTP. Explica que el navegador renderiza HTML y ejecuta JavaScript, y que HTTP se usa para solicitar y transferir recursos como páginas web, imágenes y archivos. También describe los componentes clave de una petición y respuesta HTTP como la operación, URL, cabeceras y cuerpo.
Con Selenium 2.0 y Webdriver la ejecución de TDD y BDD se ve beneficiado por las fortalezas de ambos proyectos.
Introduciremos el API Java basado en PageObjects y veremos ejemplos de creación de pruebas cross-browser para un interfaz de aplicación web con Ajax
Este documento presenta tres tecnologías web: jQuery, HTML5 y Apache Wicket. jQuery es una librería que facilita el uso de JavaScript para manipular el DOM, gestionar eventos y efectos. HTML5 incluye nuevas características como drag and drop, geolocalización, vídeo y audio. Apache Wicket es un framework Java para aplicaciones web basado en componentes.
Mootools es un framework JavaScript que facilita el desarrollo de aplicaciones web dinámicas mediante la agrupación de funciones para manipular el DOM, manejar eventos, crear y modificar elementos, y más. Algunas ventajas de Mootools son que es modular, de código abierto, bien documentado y con una gran comunidad de desarrolladores que lo mantienen y mejoran.
Este documento introduce jQuery, una biblioteca JavaScript que facilita la manipulación del DOM y la programación de efectos. Explica qué es jQuery, cómo descargarla e incluirla en un proyecto, y ofrece ejemplos básicos de selección de nodos, manipulación del contenido, encadenamiento de acciones, y uso de plugins como jBox para mostrar ventanas emergentes.
Este documento presenta un curso de desarrollo web que enseña sobre tecnologías modernas como HTML5, CSS3, JavaScript, APIs REST, DOM, BOM, jQuery y AJAX. Explica conceptos como el modelo de objetos del documento y navegador, peticiones asincrónicas, almacenamiento local y geolocalización.
1. El documento discute posibles soluciones para implementar un chat por HTTP como Iframe scripting y propone que AJAX es una solución elegante. 2. Explica el esquema de funcionamiento de AJAX donde el navegador realiza peticiones asíncronas al servidor y actualiza el DOM sin recargar la página. 3. Revisa herramientas para desarrollo AJAX como Firebug que permiten debuggear aplicaciones AJAX.
jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development. jQuery is designed to change the way that you write JavaScript.
Acceso a BBDD mediante un servlet que delega temporalmente el procesamiento de la petición a un segundo servlet que conecta y realiza operaciones con la base de datos.
Este documento introduce los servlets como una tecnología clave para el desarrollo de aplicaciones web dinámicas en Java. Explica brevemente el funcionamiento de HTTP y la arquitectura de servlets, y proporciona instrucciones paso a paso para crear un servlet simple y ejecutarlo en un contenedor de servlets como Tomcat. También cubre conceptos como el ciclo de vida de los servlets y cómo recuperar la configuración de un servlet.
Este documento introduce los servlets y su funcionamiento. Explica que los servlets permiten desarrollar aplicaciones web dinámicas y cómo interactúan con el navegador y el servidor. Detalla el ciclo de vida de un servlet, cómo configurarlos y desplegarlos en Tomcat, y cómo acceder a la información de la petición y generar la respuesta.
Este documento introduce los servlets y su funcionamiento. Explica que los servlets permiten desarrollar aplicaciones web dinámicas y cómo interactúan con el navegador y el servidor. Detalla el ciclo de vida de un servlet, cómo configurarlos y desplegarlos en Tomcat, y cómo acceder a la información de la petición y generar la respuesta.
Este documento introduce los servlets y su funcionamiento. Explica que los servlets permiten desarrollar aplicaciones web dinámicas y cómo interactúan con el navegador y el servidor. Detalla el ciclo de vida de un servlet, cómo configurarlos y desplegarlos en Tomcat, y las clases y APIs relacionadas como HttpServlet, HttpServletRequest y HttpServletResponse.
Este documento proporciona una introducción a HTML5, incluyendo su historia, objetivos, nuevas características como Canvas, video, audio, almacenamiento web y más. También muestra ejemplos del uso de estas nuevas características a través de código HTML5 y JavaScript.
Este documento describe cómo crear y manejar bases de datos en PHP y MySQL. Explica cómo crear una base de datos MySQL, crear tablas, conectarse a la base de datos desde PHP, realizar consultas, insertar registros, borrar registros y enviar y recibir datos a través de formularios.
Este documento presenta las ventajas de HTML5 sobre HTML4 y XHTML, incluyendo menos etiquetas obsoletas, menos código necesario, nuevos tipos de entrada como fecha y color sin necesidad de JavaScript, soporte incorporado para audio y video, y una estructura semántica mejorada mediante elementos como <header>, <nav>, <article> y <section>. Aunque la mayoría de los navegadores ya soportan HTML5, todavía existe una alta cuota de mercado de versiones de Internet Explorer anteriores a la 9 que no lo admiten, por lo que se recom
Los servicios web son una herramienta fantástica para los desarrolladores de páginas web. Tenemos a nuestra disposición una ingente cantidad de información incorporada a nuestras páginas actualizada y en tiempo real.
Este documento presenta una introducción a Ext JS, incluyendo sus objetivos, temas clave como AJAX, JSON, DOM y programación orientada a objetos en JavaScript. Explica conceptos como el comportamiento de aplicaciones web tradicionales vs. con AJAX, y componentes clave como XMLHttpRequest y marcos AJAX.
Este documento describe cómo extraer datos de páginas web mediante screen scraping utilizando diferentes lenguajes de programación como Ruby y Java. Explica las herramientas disponibles como HTree, REXML, Hpricot y Mechnize y cómo usarlas para simular el comportamiento humano al navegar por páginas y extraer datos de forma automatizada. También cubre técnicas como el uso de proxies y Tor para realizar peticiones de forma anónima.
Este documento presenta un curso de HTML5. Incluye información sobre el instructor Carlos Azaustre, un temario con 10 temas que cubren etiquetas HTML5, CSS3, responsive design, JavaScript, jQuery y más. También incluye el horario del curso distribuido en 4 días con sesiones por la mañana y tarde, y descripciones breves de los temas principales a cubrir.
El documento describe el funcionamiento del navegador web y el protocolo HTTP. Explica que el navegador renderiza HTML y ejecuta JavaScript, y que HTTP se usa para solicitar y transferir recursos como páginas web, imágenes y archivos. También describe los componentes clave de una petición y respuesta HTTP como la operación, URL, cabeceras y cuerpo.
Con Selenium 2.0 y Webdriver la ejecución de TDD y BDD se ve beneficiado por las fortalezas de ambos proyectos.
Introduciremos el API Java basado en PageObjects y veremos ejemplos de creación de pruebas cross-browser para un interfaz de aplicación web con Ajax
Este documento presenta tres tecnologías web: jQuery, HTML5 y Apache Wicket. jQuery es una librería que facilita el uso de JavaScript para manipular el DOM, gestionar eventos y efectos. HTML5 incluye nuevas características como drag and drop, geolocalización, vídeo y audio. Apache Wicket es un framework Java para aplicaciones web basado en componentes.
Mootools es un framework JavaScript que facilita el desarrollo de aplicaciones web dinámicas mediante la agrupación de funciones para manipular el DOM, manejar eventos, crear y modificar elementos, y más. Algunas ventajas de Mootools son que es modular, de código abierto, bien documentado y con una gran comunidad de desarrolladores que lo mantienen y mejoran.
Este documento introduce jQuery, una biblioteca JavaScript que facilita la manipulación del DOM y la programación de efectos. Explica qué es jQuery, cómo descargarla e incluirla en un proyecto, y ofrece ejemplos básicos de selección de nodos, manipulación del contenido, encadenamiento de acciones, y uso de plugins como jBox para mostrar ventanas emergentes.
Este documento presenta un curso de desarrollo web que enseña sobre tecnologías modernas como HTML5, CSS3, JavaScript, APIs REST, DOM, BOM, jQuery y AJAX. Explica conceptos como el modelo de objetos del documento y navegador, peticiones asincrónicas, almacenamiento local y geolocalización.
1. El documento discute posibles soluciones para implementar un chat por HTTP como Iframe scripting y propone que AJAX es una solución elegante. 2. Explica el esquema de funcionamiento de AJAX donde el navegador realiza peticiones asíncronas al servidor y actualiza el DOM sin recargar la página. 3. Revisa herramientas para desarrollo AJAX como Firebug que permiten debuggear aplicaciones AJAX.
jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development. jQuery is designed to change the way that you write JavaScript.
Acceso a BBDD mediante un servlet que delega temporalmente el procesamiento de la petición a un segundo servlet que conecta y realiza operaciones con la base de datos.
Este documento introduce los servlets como una tecnología clave para el desarrollo de aplicaciones web dinámicas en Java. Explica brevemente el funcionamiento de HTTP y la arquitectura de servlets, y proporciona instrucciones paso a paso para crear un servlet simple y ejecutarlo en un contenedor de servlets como Tomcat. También cubre conceptos como el ciclo de vida de los servlets y cómo recuperar la configuración de un servlet.
Este documento introduce los servlets y su funcionamiento. Explica que los servlets permiten desarrollar aplicaciones web dinámicas y cómo interactúan con el navegador y el servidor. Detalla el ciclo de vida de un servlet, cómo configurarlos y desplegarlos en Tomcat, y cómo acceder a la información de la petición y generar la respuesta.
Este documento introduce los servlets y su funcionamiento. Explica que los servlets permiten desarrollar aplicaciones web dinámicas y cómo interactúan con el navegador y el servidor. Detalla el ciclo de vida de un servlet, cómo configurarlos y desplegarlos en Tomcat, y cómo acceder a la información de la petición y generar la respuesta.
Este documento introduce los servlets y su funcionamiento. Explica que los servlets permiten desarrollar aplicaciones web dinámicas y cómo interactúan con el navegador y el servidor. Detalla el ciclo de vida de un servlet, cómo configurarlos y desplegarlos en Tomcat, y las clases y APIs relacionadas como HttpServlet, HttpServletRequest y HttpServletResponse.
Este documento proporciona una introducción a HTML5, incluyendo su historia, objetivos, nuevas características como Canvas, video, audio, almacenamiento web y más. También muestra ejemplos del uso de estas nuevas características a través de código HTML5 y JavaScript.
Este documento describe cómo crear y manejar bases de datos en PHP y MySQL. Explica cómo crear una base de datos MySQL, crear tablas, conectarse a la base de datos desde PHP, realizar consultas, insertar registros, borrar registros y enviar y recibir datos a través de formularios.
Este documento presenta las ventajas de HTML5 sobre HTML4 y XHTML, incluyendo menos etiquetas obsoletas, menos código necesario, nuevos tipos de entrada como fecha y color sin necesidad de JavaScript, soporte incorporado para audio y video, y una estructura semántica mejorada mediante elementos como <header>, <nav>, <article> y <section>. Aunque la mayoría de los navegadores ya soportan HTML5, todavía existe una alta cuota de mercado de versiones de Internet Explorer anteriores a la 9 que no lo admiten, por lo que se recom
Los servicios web son una herramienta fantástica para los desarrolladores de páginas web. Tenemos a nuestra disposición una ingente cantidad de información incorporada a nuestras páginas actualizada y en tiempo real.
Este documento presenta una introducción a Ext JS, incluyendo sus objetivos, temas clave como AJAX, JSON, DOM y programación orientada a objetos en JavaScript. Explica conceptos como el comportamiento de aplicaciones web tradicionales vs. con AJAX, y componentes clave como XMLHttpRequest y marcos AJAX.
El uso de las TIC en la vida cotidiana.pptxjgvanessa23
En esta presentación, he compartido información sobre las Tecnologías de la Información y la Comunicación (TIC) y su aplicación en diversos ámbitos de la vida cotidiana, como el hogar, la educación y el trabajo.
He explicado qué son las TIC, las diferentes categorías y sus respectivos ejemplos, así como los beneficios y aplicaciones en cada uno de estos ámbitos.
Espero que esta información sea útil para quienes la lean y les ayude a comprender mejor las TIC y su impacto en nuestra vida cotidiana.
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)AbrahamCastillo42
Power point, diseñado por estudiantes de ciclo 1 arquitectura de plataformas, esta con la finalidad de dar a conocer el componente hardware llamado tarjeta de video..
para programadores y desarrolladores de inteligencia artificial y machine learning, como se automatiza una cadena de valor o cadena de valor gracias a la teoría por Manuel Diaz @manuelmakemoney
Second Life, informe de actividad del maestro Tapia
Screen scraping
1. CLOUD COMPUTING.
DESARROLLO DE APLICACIONESY
MINERÍA WEB
Programa de extensión universitariaUniversidad de Oviedo
Miguel Fernández Fernández
miguel@ThirdWay.es
7. Porqué screen scraping
La Web es fundamentalmente para
humanos (HTML)
Pero no está diseñada para ser procesada
por máquinas (XML, JSON, CSV...)
8. Porqué screen scraping
La Web es fundamentalmente para
humanos (HTML)
Pero no está diseñada para ser procesada
por máquinas (XML, JSON, CSV...)
<horario>
<viaje>
<salida format="hh:mm">06:39</salida>
<llegada format="hh:mm">07:15</llegada>
<duracion format="minutes">36</duracion>
<linea>C1</linea>
</viaje>
</horario>
10. Porqué screen scraping
No siempre disponemos de una API
Necesitamos simular el comportamiento humano
11. Porqué screen scraping
No siempre disponemos de una API
Necesitamos simular el comportamiento humano
Interpretar
HTML
12. Porqué screen scraping
No siempre disponemos de una API
Necesitamos simular el comportamiento humano
Interpretar
HTML
Realizar
interacciones
(Navegar)
13. Porqué screen scraping
No siempre disponemos de una API
Necesitamos simular el comportamiento humano
Interpretar
HTML
Realizar
interacciones
(Navegar)
Ser un Ninja
Evitar DoS
14. Selección de las herramientas
¿Con qué lenguaje vamos a trabajar?
Java .NET Ruby Python
URL
fetching
java.net.URL
System.Net.
HTTPWebRequest
net/http
open-uri
rest-open-uri
urllib
urllib2
DOM
parsing
/
transversing
javax.swing.text.html
TagSoup
NekoHTML
HTMLAgilityPack
HTree / ReXML
HPricot
RubyfulSoup
BeautifulSoup
Regexp java.util.regexp
System.Text.
RegularExpressions
Regexp re
--- Librerías de terceras partes. No forman parte de la API del lenguaje.
15. Selección de las herramientas
¿Con qué lenguaje vamos a trabajar?
Duck typing + Reflexión = Syntactic Sugar
16. Selección de las herramientas
¿Con qué lenguaje vamos a trabajar?
Lenguajes dinámicos facilitan la codificación
Duck typing + Reflexión = Syntactic Sugar
17. import javax.swing.text.html.*;
import javax.swing.text.Element;
import javax.swing.text.ElementIterator;
import java.net.URL;
import java.io.InputStreamReader;
import java.io.Reader;
public class HTMLParser
{
public static void main( String[] argv ) throws Exception
{
URL url = new URL( "http://java.sun.com" );
HTMLEditorKit kit = new HTMLEditorKit();
HTMLDocument doc = (HTMLDocument) kit.createDefaultDocument();
doc.putProperty("IgnoreCharsetDirective", Boolean.TRUE);
Reader HTMLReader = new InputStreamReader(url.openConnection().getInputStream());
kit.read(HTMLReader, doc, 0);
ElementIterator it = new ElementIterator(doc);
Element elem;
while( elem = it.next() != null )
{
if( elem.getName().equals( "img") )
{
String s = (String) elem.getAttributes().getAttribute(HTML.Attribute.SRC);
if( s != null )
System.out.println (s );
}
}
System.exit(0);
}
}
Java
19. Selección de las herramientas RubyRuby
rest-open-uri
HTree + REXML
RubyfulSoup
WWW:Mechanize
Hpricot
Nos permitirá hacer peticiones a
URLs y extraer su contenido
extiende open-uri para soportar
más verbos
20. Selección de las herramientas RubyRuby
rest-open-uri
HTree + REXML
RubyfulSoup
WWW:Mechanize
Hpricot
HTree crea un árbol de
objetos a partir de código
HTML
HTree#to_rexml
Convierte el árbol a un árbol
REXML
REXML puede navegarse con
XPath 2.0
22. Selección de las herramientas RubyRuby
rest-open-uri
HTree + REXML
RubyfulSoup
WWW:Mechanize
Hpricot
http://hpricot.com/
Scanner implementado en C
(Muy rápido)
Genera un DOM con su
propio sistema de navegación
(selectores CSS y XPath*)como Jquery
Funcionalidad equivalente a
Htree + REXML
24. Selección de las herramientas RubyRuby
rest-open-uri
HTree + REXML
RubyfulSoup
WWW:Mechanize
Hpricot
http://hpricot.com/
Scanner implementado en C
(Muy rápido)
Genera un DOM con su
propio sistema de navegación
(selectores CSS y XPath*)como Jquery
Funcionalidad equivalente a
Htree + REXML
25. Selección de las herramientas RubyRuby
rest-open-uri
RubyfulSoup
WWW:Mechanize
Hpricot
http://hpricot.com/
Scanner implementado en C
(Muy rápido)
Genera un DOM con su
propio sistema de navegación
(selectores CSS y XPath*)como Jquery
Funcionalidad equivalente a
Htree + REXML
26. Selección de las herramientas RubyRuby
rest-open-uri
RubyfulSoup
WWW:Mechanize
Hpricot
Ofrece la misma funcionalidad que
HTree + REXML
28. Selección de las herramientas RubyRuby
RubyfulSoup
WWW:Mechanize
rest-open-uri
Hpricot
Ofrece la misma funcionalidad que
HTree + REXML
29. Selección de las herramientas RubyRuby
RubyfulSoup
WWW:Mechanize
rest-open-uri
Hpricot
Ofrece la misma funcionalidad que
HTree + REXML
Menor rendimiento que Hpricot
30. Selección de las herramientas RubyRuby
RubyfulSoup
WWW:Mechanize
rest-open-uri
Hpricot
Ofrece la misma funcionalidad que
HTree + REXML
Menor rendimiento que Hpricot
No se admiten selectores CSS
31. Selección de las herramientas RubyRuby
WWW:Mechanize
rest-open-uri
Hpricot
Ofrece la misma funcionalidad que
HTree + REXML
Menor rendimiento que Hpricot
No se admiten selectores CSS
32. Selección de las herramientas RubyRuby
rest-open-uri
WWW:Mechanize
Hpricot
Permite realizar interacciones
Rellenar y enviar formularios
Seguir enlaces
Consigue alcanzar documentos en
La Web Profunda
41. require 'rubygems'
require 'mechanize'
class TuentiAPI
def initialize(login,password)
@login=login
@password=password
end
def inicio()
agent = Mechanize.new
agent.set_proxy("localhost",8080)
#decimos que somos firefox modificando la cabecera user agent
agent.user_agent_alias='Mac FireFox'
login_page = agent.get('http://m.tuenti.com/?m=login')
#cogemos el formulario de login
login_form = login_page.forms.first
#y rellenamos los campos usuario y contraseña
login_form.fields.select{|f| f.name=="tuentiemail"}.first.value=@login
login_form.fields.select{|f| f.name=="password"}.first.value=@password
pagina_de_inicio=agent.submit(login_form)
end
end
pagina_de_inicio=TuentiAPI.new("miguelfernandezfernandez@gmail.com","xxxxxx").inicio()
45. Paso 2: Obtener las fotos
class TuentiAPI
...
def fotos_nuevas()
tree=Hpricot(inicio().content)
fotos = tree / "//a//img[@alt=Foto]"
fotos.map!{|foto| foto.attributes["src"]}
Set.new(fotos).to_a
end
private
def inicio()
...
end
end
48. Paso 3: Establecer el estado
class TuentiAPI
...
def actualizar_estado(msg)
form_actualizacion=inicio.forms.first
form_actualizacion.fields.select{|f| f.name=="status"}.first.value=msg
@agent.submit(form_actualizacion)
end
end
50. Tor: navegando de forma
anónima
https://www.torproject.org/vidalia/
Red de encadenamiento de proxies
N peticiones salen de M servidores
Garantiza el anonimato a nivel de IP
52. CLOUD COMPUTING.
DESARROLLO DE APLICACIONESY
MINERÍA WEB
Programa de extensión universitariaUniversidad de Oviedo
Miguel Fernández Fernández
miguel@ThirdWay.es