WebDataExtractor
- Utilidades
- Stanislav Korotky
- Versión: 1.1
- Actualizado: 23 noviembre 2021
- Activaciones: 5
Se trata de un experto no comercial que transforma páginas web no estructuradas en tablas de datos estructurados. Descarga y analiza un archivo HTML, luego crea DOM(Document Object Model) para él, y finalmente aplica selectores CSS(Cascading Style Sheets) especificados para los campos requeridos y extrae datos para ellos. Puede considerarlo como un conversor de HTML a CSV(valores separados por comas) potente y altamente personalizable.
El EA puede procesar páginas web de sitios remotos (utilizando WebRequest de MetaTrader) o archivos locales. Para utilizar WebRequest correctamente asegúrese de que ha añadido los dominios correspondientes en el cuadro de diálogo Opciones de Asesores Expertos.
La versión demo del experto o su versión completa que se ejecuta en el probador no puede utilizar WebRequests, debido a la limitación de MetaTrader. Sólo los archivos locales son accesibles desde el probador.
Parámetros
- URL - dirección de la página web (empieza por http:// o https://) o nombre del archivo local a cargar (debe estar en formato HTML);
- SaveName - nombre del archivo de salida (estará en formato CSV);
- TimerSeconds - periodo en segundos para recargar la URL y procesarla de nuevo; si es 0 - el experto hace el trabajo sólo una vez y luego sale;
- TriggerVariable - variable global opcional a comprobar con el temporizador; si se especifica, el experto comprueba si la variable existe: en caso afirmativo - EA comienza a procesar y luego elimina la variable, en caso negativo - EA se salta esta invocación del temporizador y sigue esperando a la próxima vez para comprobar de nuevo;
- RowSelector - selector CSS para la fila de la tabla;
- ColumnSettingsFile - archivo en formato CSV con selectores para las columnas (véanse los comentarios para más detalles);
- SubstitutionSettingsFile - archivo opcional en formato CSV para las reglas de sustitución de datos (ver comentarios para más detalles);
- TestQuery - prueba un selector CSS para una fila;
- TestSubQuery - prueba un selector CSS para un campo de la fila;
- LogXXX - activar/desactivar la opción de registro XXX;
Principios básicos
Para iniciar la extracción de datos con este experto, es necesario investigar el código fuente (HTML) de la página web de destino. Esto se puede hacer en cualquier navegador moderno mediante sus herramientas integradas para desarrolladores web. Por ejemplo, en Chrome puede abrir la ventana "Herramientas para desarrolladores" haciendo clic en el botón "Configuración" (en la esquina superior derecha de la ventana principal) y, a continuación, seleccionando "Herramientas" -> "Herramientas para desarrolladores" en el menú desplegable (los elementos del menú pueden variar entre las distintas versiones del navegador). Encontrará más detalles en la descripción oficial de DevTools. Lo que es importante para nosotros aquí es la sección Inspeccionar el DOM.
El usuario debe localizar todos los campos de datos de interés en la página web y buscar los elementos DOM correspondientes en la fuente HTML. Basándose en atributos específicos de los elementos DOM, se deben elaborar selectores CSS adecuados que determinen inequívocamente un valor para cada campo de datos específico. La ventana del desarrollador proporciona un cuadro de consola, donde puedes probar selectores CSS sobre la marcha. Por favor, asegúrate de que estás probando sólo aquellos selectores soportados por el experto.
Alternativamente, puede activar el registro DOM en el experto(LogDomElements) y luego estudiar la salida en el registro de expertos de MetaTrader. Este método carece de interactividad (no se puede probar selectores de inmediato), pero no requiere para hacer frente a las herramientas externas. Puede probar los selectores utilizando los parámetros de entrada correspondientes(TestQuery y TestSubQuery). Es aconsejable ejecutar estos experimentos en un archivo local(la URL debe apuntar a un archivo en lugar de a una dirección de Internet). Puede descargar una página web de un sitio en un archivo utilizando los siguientes parámetros: URL - dirección de Internet de la página, SaveName - nombre del archivo local a escribir (el archivo existente, si existe, se sobrescribirá), RowSelector debe estar vacío.
Selectores CSS soportados
En los comentarios encontrará la lista de selectores compatibles.
Ejemplos
En los comentarios de este producto se proporcionan ejemplos. Para cada ejemplo, se puede encontrar un fragmento HTML con comentarios añadidos para las explicaciones, y el formato cambiado para facilitar la lectura.
