Red de conocimiento informático - Material del sitio web - Cómo utilizar Node.js para rastrear cualquier recurso de página web y generar archivos PDF localmente

Cómo utilizar Node.js para rastrear cualquier recurso de página web y generar archivos PDF localmente

Requisitos:

Utilice Node.js para rastrear recursos web, configuración lista para usar

Genere el contenido web rastreado en formato PDF

p>

Si eres técnico, puedes leer mi próximo artículo. De lo contrario, ve directamente a mi almacén de github y simplemente lee el documento y úsalo.

Dirección del almacén: viene con la documentación y la fuente. código

Tecnologías utilizadas en este requisito: Node.js y titiritero

Dirección del sitio web oficial de titiritero: dirección de titiritero

Dirección del sitio web oficial de Node.js: Descripción del enlace

Puppeteer es una biblioteca Node producida oficialmente por Google que controla Chrome sin cabeza a través del protocolo DevTools. Puede controlar Chrome directamente a través de la API proporcionada por Puppeteer para simular la mayoría de las operaciones del usuario para realizar pruebas de interfaz de usuario o acceder a la página como rastreador para recopilar datos.

Entorno e instalación

El propio Puppeteer se basa en Node 6.4 o superior, pero para el modo asíncrono/await asincrónico súper fácil de usar, se recomienda usar Node 7.6 o superior. Además, Chrome sin cabeza tiene requisitos de versión relativamente altos para las bibliotecas de las que depende el servidor. La dependencia del servidor centos es relativamente estable. Es difícil usar Chrome sin cabeza con v6. (no se limita a la imposibilidad de utilizar ssh). Es mejor utilizar el servidor de versión alta.

(Se recomienda utilizar la última versión de Node.js)

Pruébelo y rastree los recursos de JD.com

const puppeteer = require('puppeteer'); dependencias

(async () =gt; { //Utiliza la función asíncrona para ser perfectamente asíncrono

const browser = await puppeteer.launch(); //Abre un nuevo navegador

const page = await browser.newPage(); // Abre una nueva página web

await page.goto('/download/, descarga el paquete del sistema operativo correspondiente del sitio web oficial chino de Node.js

El segundo paso, después de descargar e instalar Node.js, inicie la herramienta de línea de comandos de Windows (inicie la función de búsqueda del sistema en Windows, ingrese cmd, presione Entrar y aparecerá)

El tercer paso es verificar el entorno. Compruebe si las variables se han configurado automáticamente. Ingrese node -v en la herramienta de línea de comando. Si aparece el campo v10.***, significa que Node.js es. instalado correctamente.

Paso 4 Si encuentra la entrada en el paso 3 Nodo -v aún no muestra el campo correspondiente, reinicie la computadora

El quinto paso es abrir el carpeta del proyecto y abra la herramienta de línea de comando (en sistemas Windows, ingrese cmd directamente en la barra de direcciones URL del archivo, puede abrirlo), ingrese npm i cnpm nodemon -g

El sexto paso es descargue el paquete del rastreador de titiritero. Después de completar el quinto paso, use el comando cnpm i puppeteer --save para descargar

Después de completar la descarga del paso 6 en el paso 7, abra el url.js de este proyecto. reemplace la dirección de la página web que desea que rastree el rastreador (el valor predeterminado es /)

Paso 8 en la línea de comando Ingrese nodemon index.js para rastrear el contenido correspondiente y enviarlo automáticamente al índice. pdf en la carpeta actual

CONSEJOS: La idea de diseño de este proyecto es una página web y un archivo PDF, por lo que después de rastrear una sola página por primera vez, copie el index.pdf Luego continúe cambiando la dirección URL, continúe rastreando y genere un nuevo archivo PDF. Por supuesto, también puede rastrear varias páginas web a la vez mediante la compilación en bucle y otros métodos.

En el caso de páginas web como la página de inicio de JD.com que permiten la carga diferida de imágenes, parte del contenido rastreado es contenido en estado de carga. Para las páginas web con algunos mecanismos anti-rastreador, los rastreadores también tendrán problemas, pero. absolutamente la mayoría de los sitios web están bien

const puppeteer = require('puppeteer');

const url = require('./url');

(async () =gt; {

const navegador = aguarda titiritero.launch({ headless: true })

const página = aguarda navegador.newPage()

//Seleccione la página web para abrir

await page.goto(url, { waitUntil: 'networkidle0' })

//Seleccione la ruta del archivo PDF que desea generar, Salida el contenido rastreado en PDF debe ser un PDF existente y puede ser contenido vacío. Si no es un PDF de contenido vacío, el contenido se sobrescribirá

let pdfFilePath = './index.pdf';

//De acuerdo con sus opciones de configuración, elegimos especificaciones de papel A4 para generar PDF aquí para facilitar la impresión

await page.pdf({

ruta: pdfFilePath ,

formato: 'A4',

escala: 1,

imprimirFondo: verdadero,

paisaje: falso,

p>

displayHeaderFooter: false

});

espera navegador.close()

})()

Diseño de deconstrucción de archivos

Los datos son muy valiosos en esta era. De acuerdo con la lógica de diseño de la página web, si selecciona la dirección de un href específico, puede obtener directamente el recurso correspondiente primero. o puede ingresarlo usando el método page.goto nuevamente y luego llamar a page.evaluate() para procesar la lógica o generar el archivo PDF correspondiente. Por supuesto, también puede generar varios archivos PDF de una sola vez ~

No entraré en demasiadas presentaciones aquí. Después de todo, Node.js puede ir al cielo. Sí, tal vez realmente pueda hacer cualquier cosa en el futuro. Para obtener un tutorial breve y de tan alta calidad, márquelo como favorito

o reenvíelo a sus amigos, gracias.