Web Scraping

Web Scraping, traducido al español literalmente sería algo como "raspado del contenido Web", consiste en una aplicación que hace un recorrido interno del HTML de un sitio web con la intención de extraer los datos y manipularlos para un fin en particular, como por ejemplo crear un índice de contenido, conocer si una página maneja texto no permitido, etc. Estas aplicaciones son de gran utilidad, expondremos las más usadas.




martes, 23 de noviembre de 2010

Programando un web scraper (Internet Explorer)

Por Joel José García Rengifo.
Una buena parte de los Web scrapers se basan en el DOM de los browsers. Otros, como el presente ejemplo, recuperan directamente el contenido despachado vía HTTP. El código de abajo hace uso del objeto HTTPREQUEST y JSCRIPT para hacer scraping del contenido de la página inicial de AMA, del curso de TI. Una vez obtenido el contenido, se despliega dinámicamente una réplica propia utilizando DHTML.

Si lo deseas, puedes bajar el código y ejecutarlo en tu PC desde la siguiente dirección.
http://dt-ip.com/downloads/demo_scraper_ama_ti.zip


Para lograr esto se utilizan las siguientes líneas de código JS:

function ExtraeryCopiarContenidodeAMA(cbou)
{
var xmlhttp;
try
{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try
{

xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (E)
{
xmlhttp = false;
}
}

if (typeof xmlhttp!='undefined')
{
xmlhttp.open("GET", "http://iutfrp.com.ve/ama/login/index.php",true);
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4)
{
ContenidoRecibido(xmlhttp.responseText);
}
}
xmlhttp.send(null)
}
}

function ContenidoRecibido(contenido)
{

alert("A punto de mostrar el contenido extraído dinámicamente de AMA IUT");

document.write(contenido);
}

ExtraeryCopiarContenidodeAMA();



Usos y aplicaciones de web scraping

Por Joel José García Rengifo & Freddy Madríz

El web scraping se utiliza en múltiples própositos, desde los más especializados hasta los más cotidianos. Entre ellos se destacan los siguientes:

  • Seguridad y defensa: Los organismos de defensa cuentan con scripts que analizan el contenido de sitios web (blogs, páginas personales, dominios gratutios, etc) con el fin de detectar patrones de palabras que pudiesen incitar a actividades delictivas o ilegales. Una vez obtenidos los resultados, se puede escalar a un nuevo nivel de scraping , o se realizan análisis semi manuales de los sites identificados como sospechosos.
  • Seguimiento de cambios de contenido(RSS): En oportunidades resulta particularmente útil mantenerse informado acerca de los cambios en el contenido de uno o varios sites. Por ejemplo, para enterarse de nuevas noticias publicadas, seguir el cambio de precios en algún artículo, o verificar las ofertas laborales disponibles para un perfil profesional específico. En estos casos algunas herramientas de la web pueden ser configuradas para hacer el scraping peridicamente e informar e caso de cambios. Algunas aplicaciones de este tipo son google reader o feedity.com.
  • Análisis de contenido: también es frecuente hacer scraping de un grupo de sites con la finalidad de adelantar estudios de la información publicada. Esto puede ir desde un simple inventario de palabras y frases más utilizadas, hasta complejos análisis semánticos.

Screen Scraping

Screen scraping es el nombre en inglés de una técnica de programación que consiste en tomar una presentación de una información (normalmente texto, aunque puede incluir información gráfica) para, mediante ingeniería inversa, extraer los datos que dieron lugar a esa presentación. Por ejemplo:

  • Extraer de la página web de un diario el tiempo meteorológico previsto.


  • Extraer los datos originales a partir de la imagen de una gráfica elaborada.


  • Hacer una consulta automática a la página de gestión de nuestro banco para verificar si el saldo es inferior a un umbral.


  • Extraer los datos de un informe en PDF para volcarlos en una hoja de cálculo.



Screen scraping es una técnica en la cuál un programa de ordenador extrae datos de texto de la salida que ofrece otro programa, ignorando otros datos como imágenes y datos multimedia. Lo que distingue al Screen Scraping del análisis regular es que la salida normalmente no está documentada, ni estructurada ni sirve para la transmisión de los datos. Existe un tipo de scraping visual que es el software de reconocimiento óptico de caracteres (OCR).



El screen scraping ha sido diseñado para procesar datos de texto de interés pero también para reconocer y descartar datos no deseados. Está considerada como una técnica ad-hoc, poco elegante y a menudo usada sólo como un recurso cuando no hay otra elección. A parte del alto y elevado proceso de programación, la visualización de la salida visible para las personas puede cambiar y las personas son capaces de adaptarse a este cambio pero los programas no, por lo que rompen o producen fallos. Requiere intensivos algoritmos de análisis de texto. Los lenguajes de programación que tiene un fuerte soporte para las expresiones regulares y otro procesamiento de texto son una buena elección para escribir programas screen scraping.



A continuacion, una imagen de un aplicativo para realizar barridos de pantallas:





By Oswaldo Viera















lunes, 22 de noviembre de 2010

Modelo de objetos de Datos - DOM

 El modelo de Objeto de Datos (DOM), por sus siglas en inglés (Document Object Model) es un modelo de objetos estandard para documentos HTML y XML que define la estrucutra lógica de los mismos. Este modelo contiene una estructura abstracta del documento XML, de esta manera, un programa que pueda acceder a esta estructura puede entonces modificar el contenido, el estilo o la presentación del documento.
 Según la W3C, uno de los objetivos importantes del Modelo de Objetos del Documento es proporcionar una interfaz estándar de programación que pueda utilizarse en una amplia variedad de entornos y aplicaciones. El DOM se ha diseñado para utilizarse en cualquier lenguaje de programación como Java o ECMAScript (un lenguaje de scripts industrial basado en JavaScript y JScript), etc.

El estándard DOM está organizado en tres partes:
  • DOM Nivel 1 Core (definiciones fundamentales)
  • DOM Nivel 1 HTML
  • DOM Nivel 1 XML
 A continuación se muestran referencias del árbol DOM para Internet Explorer y Mozilla:
DOM Mozilla

DOM Internet Explorer