Cómo construir un rastreador web básico para extraer información de un sitio web

Cómo construir un rastreador web básico para extraer información de un sitio web

Los programas que leen información de sitios web o rastreadores web tienen todo tipo de aplicaciones útiles. Puede buscar información bursátil, resultados deportivos, mensajes de texto de una cuenta de Twitter o extraer precios de sitios web de compras.





Escribir estos programas de rastreo web es más fácil de lo que piensa. Python tiene una gran biblioteca para escribir scripts que extraen información de sitios web. Veamos cómo crear un rastreador web con Scrapy.





Instalación de Scrapy

Scrapy es una biblioteca de Python que se creó para rastrear la web y crear rastreadores web. Es rápido, simple y puede navegar a través de múltiples páginas web sin mucho esfuerzo.





Scrapy está disponible a través de la biblioteca Pip Installs Python (PIP), aquí hay un repaso sobre cómo instalar PIP en Windows, Mac y Linux .

Se prefiere el uso de un entorno virtual de Python porque le permitirá instalar Scrapy en un directorio virtual que deja los archivos de su sistema en paz. La documentación de Scrapy recomienda hacer esto para obtener los mejores resultados.



Cree un directorio e inicialice un entorno virtual.

ver dibujos animados de hanna barbera online gratis
|_+_|

Ahora puede instalar Scrapy en ese directorio usando un comando PIP.





|_+_|

Una revisión rápida para asegurarse de que Scrapy esté instalado correctamente

|_+_|

Cómo construir un rastreador web

Ahora que el entorno está listo, puede comenzar a construir el rastreador web. Saquemos algo de información de una página de Wikipedia sobre baterías: https://en.wikipedia.org/wiki/Battery_(electricity) .





El primer paso para escribir un rastreador es definir una clase Python que se extienda desde Scrapy Araña . Esto le da acceso a todas las funciones y características de Scrapy. Llamemos a esta clase spider1 .

Una clase de araña necesita algunos datos:

  • a nombre para identificar la araña
  • a start_urls variable que contiene una lista de URL para rastrear (la URL de Wikipedia será el ejemplo en este tutorial)
  • a analizar gramaticalmente() método que se utiliza para procesar la página web para extraer información
|_+_|

Una prueba rápida para asegurarse de que todo funcione correctamente.

|_+_|

Desactivar el registro

Ejecutar Scrapy con esta clase imprime información de registro que no te ayudará en este momento. Hagámoslo simple eliminando este exceso de información de registro. Utilizar una advertencia declaración agregando código al principio del archivo.

|_+_|

Ahora, cuando vuelva a ejecutar el script, la información de registro no se imprimirá.

Usando el Inspector de Chrome

Todo en una página web se almacena en elementos HTML. Los elementos están organizados en el Modelo de objetos de documento (DOM). Comprender el DOM es fundamental para aprovechar al máximo su rastreador web. Un rastreador web busca en todos los elementos HTML de una página para encontrar información, por lo que es importante saber cómo están organizados.

Google Chrome tiene herramientas que lo ayudan a encontrar elementos HTML más rápido. Puede localizar el HTML de cualquier elemento que vea en la página web utilizando el inspector.

  • Navegar a una página en Chrome
  • Coloque el mouse sobre el elemento que le gustaría ver
  • Haga clic derecho y seleccione Inspeccionar del menú

Estos pasos abrirán la consola del desarrollador con el Elementos pestaña seleccionada. En la parte inferior de la consola, verá un árbol de elementos. Este árbol es la forma en que obtendrá información para su script.

Extrayendo el título

Consigamos que el guión nos ayude; Un simple rastreo para obtener el texto del título de la página web.

Inicie el script agregando algo de código al analizar gramaticalmente() método que extrae el título.

|_+_|

los respuesta argumento admite un método llamado CSS () que selecciona elementos de la página utilizando la ubicación que proporcionas.

En este ejemplo, el elemento es h1.firstHeading . Añadiendo

|_+_|

al script es lo que le da el contenido de texto del elemento. Finalmente, el extraer() método devuelve el elemento seleccionado.

La ejecución de este script en Scrapy imprime el título en forma de texto.

|_+_|

Encontrar la descripción

Ahora que hemos raspado el texto del título, hagamos más con el guión. El rastreador buscará el primer párrafo después del título y extraerá esta información.

Aquí está el árbol de elementos en la Consola para desarrolladores de Chrome:

computadora portátil con Windows 10 enchufada no se está cargando
|_+_|

La flecha hacia la derecha (>) indica una relación padre-hijo entre los elementos.

Esta ubicación devolverá todos los pag elementos coincidentes, que incluye la descripción completa. Para conseguir el primero pag elemento puede escribir este código:

|_+_|

Al igual que el título, agrega un extractor de CSS

|_+_|

para obtener el contenido de texto del elemento.

|_+_|

La expresión final usa extraer() para devolver la lista. Puedes usar Python entrar() función para unirse a la lista una vez que se haya completado todo el rastreo.

|_+_|

¡El resultado es el primer párrafo del texto!

|_+_|

Recopilación de datos JSON

Scrapy puede extraer información en forma de texto, lo cual es útil. Scrapy también le permite ver los datos de la notación de objetos JavaScript (JSON). JSON es una forma ordenada de organizar la información y se usa ampliamente en el desarrollo web. JSON funciona bastante bien con Python así como.

Cuando necesite recopilar datos como JSON, puede utilizar el producir declaración integrada en Scrapy.

Aquí hay una nueva versión del script que usa una declaración de rendimiento. En lugar de obtener el primer elemento p en formato de texto, esto tomará todos los elementos p y los organizará en formato JSON.

mi teléfono no se enciende y está completamente cargado
|_+_|

Ahora puede ejecutar la araña especificando un archivo JSON de salida:

|_+_|

El script ahora imprimirá todos los elementos p.

|_+_|

Raspado de varios elementos

Hasta ahora, el rastreador web ha extraído el título y un tipo de elemento de la página. Scrapy también puede extraer información de diferentes tipos de elementos en un solo script.

Extraigamos los principales éxitos de taquilla de IMDb durante un fin de semana. Esta información se extrae de http://www.imdb.com/chart/boxoffice , en una tabla con filas para cada métrica.

los analizar gramaticalmente() El método puede extraer más de un campo de la fila. Con las herramientas de desarrollo de Chrome, puede encontrar los elementos anidados dentro de la tabla.

|_+_|

los imagen selector especifica que img es descendiente de td.posterColumn . Para extraer el atributo correcto, use la expresión mkdir crawler
cd crawler
virtualenv venv
. venv/bin/activate
.

Ejecutar la araña devuelve JSON:

|_+_|

Más web scrapers y bots

Scrapy es una biblioteca detallada que puede realizar casi cualquier tipo de rastreo web que usted le solicite. Cuando se trata de encontrar información en elementos HTML, combinado con el soporte de Python, es difícil de superar. Ya sea que esté creando un rastreador web o aprendiendo sobre los conceptos básicos del web scraping, el único límite es cuánto está dispuesto a aprender.

Si está buscando más formas de crear rastreadores o bots, puede intentar construir bots de Twitter e Instagram usando Python . Python puede crear algunas cosas asombrosas en el desarrollo web, por lo que vale la pena ir más allá de los rastreadores web al explorar este lenguaje.

Cuota Cuota Pío Correo electrónico 15 comandos del símbolo del sistema de Windows (CMD) que debe conocer

El símbolo del sistema sigue siendo una poderosa herramienta de Windows. Estos son los comandos CMD más útiles que todo usuario de Windows debe conocer.

Leer siguiente
Temas relacionados
  • Programación
  • Herramientas para webmasters
  • Programación
  • Pitón
  • Tutoriales de codificación
  • Rastreadores web
Sobre el Autor Anthony Grant(40 Artículos publicados)

Anthony Grant es un escritor independiente que cubre programación y software. Se especializa en Ciencias de la Computación y se dedica a la programación, Excel, software y tecnología.

Más de Anthony Grant

Suscríbete a nuestro boletín

¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!

Haga clic aquí para suscribirse