undefined
Blog > Colleccíon de datos > Post

Cómo Construir un Web Crawler para Extraer Datos

Tuesday, April 14, 2020

Comience con el web crawling

  • ¿Qué es el web crawling?

 

 

 

Web crawling se refiere a la extracción de datos HTML específicos de ciertos sitios web. En pocas palabras, podemos percibir un web crawling como un programa particular diseñado para crawl websites en orientación y recopilar datos. Sin embargo, no podemos obtener la dirección URL de todas las páginas web dentro de websites que contiene muchas páginas web por adelantado. Por lo tanto, lo que nos preocupa es cómo obtener todas las páginas web HTML de websites.

 

  • Recorrer Todas Las URL

 

 

 

Normalmente, podríamos definir una página de entrada: una página web contiene URLs de otras páginas web, luego podríamos recuperar estas URL de la página actual y agregar todas estas URL afiliadas a la cola de crawling. A continuación, rastreamos otra página y repetimos el mismo proceso que el primero de forma recursiva. Esencialmente, podríamos asumir el esquema de crawling como búsqueda en profundidad o recorrido transversal. Y siempre que pudiéramos acceder a Internet y analizar la página web, podríamos rastrear un sitio web. Afortunadamente, la mayoría de los lenguajes de programación ofrecen bibliotecas de cliente HTTP para rastrear páginas web, e incluso podemos usar expresiones regulares para el análisis HTML.

 

 

  • Algoritmo de Web Crawler General
  • Comenzar con una lista de URLs iniciales, llamadas the seeds.
  • Visitar estas URLs.
  • Recuperar la información requerida de la página.
  • Identificar todos los hipervínculos en la página.
  • Agregar los enlaces a la cola de URL, llamada frontera del crawler.
  • Visitar recursivamente las URL de la frontera del crawler.

 

 

Cómo Crawl a Website?

 

 

 

  • Dos Pasos Principales para Construir un Web Crawler

Para crear un Web crawler, un paso imprescindible es descargar las páginas web. Esto no es fácil ya que es necesario tener en cuenta muchos factores, como cómo aprovechar mejor el ancho de banda local, cómo optimizar las consultas DNS y cómo liberar el tráfico en el servidor mediante la asignación razonable de solicitudes web.


Después de buscar las páginas web, sigue el análisis de complejidad de las páginas HTML. De hecho, no podemos obtener todas las páginas web HTML directamente. Y aquí viene otro problema. ¿Cómo recuperar el contenido generado por Javascript cuando AJAX se usa en todas partes para sitios web dinámicos? Además, la Spider Trap que ocurre con frecuencia en Internet haría un número infinito de solicitudes o puede provocar el colapso de crawler mal construidos.

 

Si bien hay muchas cosas que debemos tener en cuenta al crear un web crawler, en la mayoría de los casos solo queremos crear un crawler para un sitio web específico. Por lo tanto, es mejor que investiguemos a fondo la estructura de los websites de destino y recojamos algunos enlaces valiosos para realizar un seguimiento, a fin de evitar un costo adicional en las URL redundantes o basura. Además, podríamos intentar rastrear solo lo que nos interesa desde el sitio web de destino siguiendo una secuencia predefinida si pudiéramos encontrar una ruta de crawling adecuada con respecto a la estructura web.

 

 

Por ejemplo, si nos gustaría rastrear el contenido de mindhack.cn, y hemos encontrado dos tipos de páginas que nos interesan:

1. Lista de artículos, como la página principal o la URL con /page/\d+/ and etc.

Al inspeccionar Firebug, podríamos descubrir que el enlace de cada artículo es una "Tag" en h1.

 

2. Contenido del artículo, como /2008/09/11/ machine-learning-and-ai-resources/, que incluye el contenido completo del artículo.

Por lo tanto, podríamos comenzar con la página principal y recuperar otros enlaces de la página de entrada: wp-pagenavi. Específicamente, necesitamos definir un camino: solo seguimos la página siguiente, lo que significa que podríamos recorrer todas las páginas de principio a fin, y ser liberados de un juicio repetitivo. Luego, los enlaces a artículos concretos dentro de la página de la lista serán las URL que nos gustaría almacenar.

 

 

Algunos Consejos para Crawling

  • Profundidad de Crawl: Desea que el crawling atraviese todas las páginas. En la mayoría de los casos, una profundidad de 5 es suficiente para rastrear desde la mayoría de los sitios web.
  • Rastreo Distribuido: el rastreador intentará rastrear las páginas al mismo tiempo.
  • Pausa: El tiempo que el crawler hace una pausa antes de rastrear la página siguiente.
  • Cuanto más rápido configure el crawler, más difícil será en el servidor (al menos 5-10 segundos entre clics en la página).
  • Plantilla de URL: La plantilla determinará de qué páginas quiere el crawler los datos.
  • Guardar registro: Un registro guardado almacenará qué URL se visitaron y cuáles se convirtieron en datos. Se utiliza para depurar y evitar crawling un sitio visitado repetidamente.

 

Encontrar una Herramienta para Crawl Datos

Existen desafíos tácticos importantes hoy en el mundo que viene junto con el web crawling:

  • Bloqueo de direcciones IP por websites de destino
  • Estructuras de web no uniformes o irregulares.anti
  • Contenido cargado AJAX
  • Latencia en tiempo real
  • Sitio web Anti-Crawling agresivo

 

Abordar todos los problemas no es una tarea fácil, y puede ser incluso problemático. Afortunadamente, ahora no necesita crawl un website como solía ser y quedar atrapado en un problema técnico. Alternativamente, se propone un nuevo método para crawl data de websites de destino. No se requerirá que los usuarios manejen configuraciones complejas o codificación para construir un rastreador por sí mismos. En cambio, podrían concentrarse más en el análisis de datos en sus respectivos dominios comerciales.

 

Este método que mencionaría es un rastreador web automatizado-Octoparse, que hace que el crawling esté disponible para todos. Los usuarios pueden usar las herramientas y API integradas para crawl datos con una interfaz de usuario de apuntar y hacer clic fácil de usar. Se ofrecen muchas otras extensiones en esta aplicación para tratar los problemas crecientes dentro de unos pocos pasos de configuración. Los problemas se luchan de una manera más eficiente con sus potentes funciones que incluyen:

  • Servidores proxy IP para evitar el bloqueo de IP

  • Herramienta Regex incorporada para volver a formatear campos de datos

  • Configuración de AJAX para cargar contenido dinámico

  • Servicio en la nube para dividir la tarea y acelerar la extracción, etc.

 

Para obtener más información sobre este software de web crawler, puede ver el video a continuación para aprender cómo comenzar con Octoparse y comenzar a crawling.

 

Más recursos para el estudio de web crawling aplicado en diferentes casos:

Scrape la información del producto de Amazon

Web Scraping for Sports Stats

 

Echa un vistazo a algunas características que te pueden interesar:

Extracting Data from Dynamic Websites in Real-Time

Extraer datos detrás de un inicio de sesión

Extract Text from HTML - Using RegExp Tool

Which Language is Better for Writing a Web Crawler? PHP, Python or Node.js?

 

O lee más sobre cómo se aplica un web scraper en varias industrias:

Los 5 Mejores Scraping Herramientas para Redes Sociales en 2021

Una guía completa para las publicaciones de trabajos de web scraping

Web Scraping for Sports Stats

Scraping de Twitter y Análisis de Sentimientos Utilizando Python

¡Descarga Octoparse para comenzar con el web scraping o contáctanos para cualquier
pregunta sobre el web scraping!

Contactarnos Descargar
Usamos cookies para mejorar tu experiencia de navegación. Lee sobre cómo usamos las cookies y cómo puedes controlarlas haciendo clic en la configuración de cookies. Si continúas utilizando este sitio, acepta nuestro uso de cookies.
Aceptar Rechazar