Cómo extraer datos de un sitio web con Node.js y Puppeteer

El autor seleccionó el Fondo de Código Libre y Abierto para recibir una donación como parte del programa Write for DOnations.
Introducción
El web scraping es el proceso de automatizar la recopilación de datos de la web. El proceso normalmente implementa un "rastreador" que navega automáticamente por la web y extrae datos de páginas seleccionadas. Hay muchas razones por las que podría querer extraer datos. Principalmente, hace que la recopilación de datos sea mucho más rápida al eliminar el proceso de recopilación manual de datos. El scraping también es una solución cuando se desea o se necesita la recopilación de datos, pero el sitio web no proporciona una API.
En este tutorial, creará una aplicación de extracción de datos web con Node.js y Puppeteer. Su aplicación se volverá más compleja a medida que avance. Primero, codificará su aplicación para abrir Chromium y cargar un sitio web especial diseñado como un entorno de pruebas de extracción de datos web: books.toscrape.com. En los siguientes dos pasos, extraerá todos los libros de una sola página de books.toscrape y luego todos los libros de varias páginas. En los pasos restantes, filtrará su extracción por categoría de libro y luego guardará sus datos como un archivo JSON.
Advertencia: La ética y la legalidad del web scraping son muy complejas y están en constante evolución. También difieren en función de su ubicación, la ubicación de los datos y el sitio web en cuestión. Este tutorial utiliza un sitio web especial, books.toscrape.com, que fue diseñado específicamente para probar aplicaciones de scraping. El scraping de cualquier otro dominio queda fuera del alcance de este tutorial.
Prerrequisitos
- Node.js instalado en tu máquina de desarrollo. Este tutorial se probó en la versión 12.18.3 de Node.js y en la versión 6.14.6 de npm. Puedes seguir esta guía para instalar Node.js en macOS o Ubuntu 18.04, o puedes seguir esta guía para instalar Node.js en Ubuntu 18.04 usando un PPA.
Paso 1: Configuración del Web Scraper
Una vez instalado Node.js, puedes comenzar a configurar tu web scraper. Primero, crearás un directorio raíz para el proyecto y luego instalarás las dependencias necesarias. Este tutorial requiere solo una dependencia, y la instalarás usando el administrador de paquetes predeterminado de Node.js, npm. npm viene preinstalado con Node.js, por lo que no necesitas instalarlo.
Crea una carpeta para este proyecto y luego muévete dentro:
- mkdir book-scraper
- cd book-scraper
Ejecutarás todos los comandos posteriores desde este directorio.
Necesitamos instalar un paquete usando npm, o el administrador de paquetes de node. Primero inicializa npm para crear un packages.json
archivo que administrará las dependencias y los metadatos de tu proyecto.
Inicialice npm para su proyecto:
- npm init
npm presentará una secuencia de indicaciones. Puede presionar ENTER
en cada indicación o puede agregar descripciones personalizadas. Asegúrese de presionar ENTER
y dejar los valores predeterminados en su lugar cuando se le solicite entry point:
y test command:
. Alternativamente, puede pasar la y
bandera a npm
— npm init -y
—y enviará todos los valores predeterminados por usted.
El resultado será algo como esto:
Output{ "name": "sammy_scraper", "version": "1.0.0", "description": "a web scraper", "main": "index.js", "scripts": { "test": "echo "Error: no test specified"" exit 1"" }
Deja una respuesta