¿Cuáles son las mejores opciones disponibles para el scraping de HTML? [cerrado]

Actualmente estoy usando PHP DOM con CURL y Simple HTML DOM Parser para raspado de HTML. Necesito raspar un gran conjunto de contenidos y necesito almacenarlo. Estoy usando PHP como mi idioma principal y MySQL como base de datos de almacenamiento; sin embargo, estoy interesado en opciones en cualquier idioma y puedo integrarlo en mi flujo de trabajo.

¿Hay algún otro paquete de extracción de HTML que deba investigar? He oído hablar de bibliotecas de raspado web llamadas ' Scrapy ' y ' Beautiful Soup ' que se basan en Python.

Se agradecen mucho las sugerencias.! :)

¿Votar negativo? Por favor explique. Esta pregunta parece encajar perfectamente con este nuevo sitio de StackExchange.
@BasilBourque No voté en contra, pero cuando lo hago, no siempre siento la necesidad de explicarlo. Pero puedo imaginar que la gente vote en contra de esto porque no es fácil entender lo que se pregunta. Cuanto sale un conjunto grande? Terabytes? ¿Cientos, millones o miles de millones de artículos? ¿Es para PHP o Python (aparentemente todo está bien?). ¿Qué características de la biblioteca de extracción de HTML son importantes? ¿Soporte de JavaScript? ¿Actuación?

Respuestas (2)

jsoup: biblioteca de Java para buscar y analizar

Para obtener y analizar HTML, utilizo la biblioteca basada en Java, jsoup . Se las arregla asombrosamente bien con el código HTML mal formado y destrozado.

Tiene una variedad de formas de consultar, para responder preguntas como "Dame la tercera tabla en el documento".

De la página web de la biblioteca:

jsoup es una biblioteca de Java para trabajar con HTML del mundo real. Proporciona una API muy conveniente para extraer y manipular datos, utilizando lo mejor de DOM, CSS y métodos similares a jquery.

¿Qué base de datos estás usando?
@SurabhilSergy DB? ¿Te refieres a la base de datos? La base de datos es irrelevante aquí. Tu pregunta era sobre las herramientas de raspado. Mi respuesta fue jsoupcuál es una biblioteca de Java que (a) obtiene una página web, (b) analiza el HTML de esa página y (c) le permite consultar partes de ese contenido HTML de varias maneras. Lea Wikipedia para conocer el significado de "web scraping" .
Gracias la respuesta. Solo pedí recomendaciones de bases de datos en caso de almacenar el gran conjunto de datos extraídos.
Una recomendación de base de datos es una pregunta separada. Es una pregunta digna, pero no es esta pregunta. Debe hacer una nueva pregunta en este sitio sobre la base de datos para almacenar grandes conjuntos de datos del web scraping . StackExchange se trata de preguntas específicas con respuestas específicas, sin largas discusiones ni salirse por la tangente.

Clase Java: ScheduledExecutorService

Si desea realizar web scraping repetida y regularmente, y utiliza Java, consulte la clase incluida ScheduledExecutorService.

Un ExecutorService que puede programar comandos para que se ejecuten después de un retraso determinado o para que se ejecuten periódicamente.

Esta clase es más nueva y tiene ventajas sobre la Timerclase citada con más frecuencia. Busque StackOverflow.com para obtener más información y debates.

Para usar un ScheduledExecutorService, defina una clase que implemente la interfaz Runnable . Esa interfaz simplemente significa que su clase incluye un método llamado run. En ese método, obtiene su página web, la analiza y la maneja/almacena. Ese método es donde podría llamar a una biblioteca como jsoup. Pasa una instancia de su clase Runnable a ScheduledExecutorService para que se ejecute cada minuto, hora, a la hora que especifique.