Cómo comenzar rápidamente con VUE3.0: Ingrese a aprender
Hola a todos, soy Xiaoma, ¿por qué necesito descargar tantas imágenes? Hace unos días, implementé un subprograma de fondos de pantalla de forma gratuita usando uni-app + uniCloud. Luego necesito algunos recursos para completar el contenido del subprograma.
primero inicialice el proyecto e instale axios
y cheerio
npm init -y && npm i axios cheerio
axios
se usa para rastrear contenido web. cheerio
es la API de jquery en el lado del servidor. La usamos para obtener la dirección de la imagen en el. dom;
const axios = requerir('axios') const cheerio = requerir('cheerio') función getImageUrl (target_url, contenedorEelment) { dejar lista_resultados = [] const res = esperar axios.get(target_url) constante html = res.datos constante $ = cheerio.carga(html) lista_resultados constante = [] $(contenedorEelment).cada((elemento) => { result_list.push($(elemento).find('img').attr('src')) }) devolver lista_resultados }
De esta manera, puede obtener la URL de la imagen en la página. A continuación, debe descargar la imagen según la URL.
Método 1: use los módulos integrados 'https' y 'fs'
La descarga de archivos usando nodejs se puede realizar usando paquetes integrados o bibliotecas de terceros.
El método GET se utiliza con HTTPS para descargar el archivo. createWriteStream()
es un método utilizado para crear una secuencia de escritura. Solo recibe un parámetro, que es la ubicación donde se guarda el archivo. Pipe()
es un método que lee datos de una secuencia legible y los escribe en una secuencia grabable.
constante fs = requerir('fs') constante https = requerir('https') //URL de la imagen URL constante = 'GFG.jpeg' https.get(url, (res) => { // La imagen se almacenará en esta ruta ruta constante = `${__dirname}/files/img.jpeg` const filePath = fs.createWriteStream(ruta) res.pipe(rutadelarchivo) filePath.on('finalizar', () => { rutaarchivo.cerrar() console.log('Descarga completada') }) })
Método 2: DownloadHelper
npm install node-downloader-helperEl
siguiente es el código para descargar imágenes del sitio web. Un objeto dl es creado por la clase DownloadHelper, que recibe dos parámetros:
La variable Archivo contiene la URL de la imagen que se descargará y la variable filePath contiene la ruta al archivo que se guardará.
const { DownloaderHelper } = require('nodo-descargador-ayudante') //URL de la imagen archivo constante = 'GFG.jpeg' // Ruta en la que se descargará la imagen const filePath = `${__dirname}/archivos` const dl = nuevo DownloaderHelper(archivo, rutadelarchivo) dl.on('end', () => console.log('Descarga completada'))Método tres
de dl.start()
: Usar descarga.
Está escrito por npm master sindresorhus. Es muy fácil de usar.
Descarga de instalación de npm.
El siguiente es el código para descargar imágenes del sitio web. La función de descarga recibe un archivo y una ruta de archivo.
descarga constante = requerir('descargar') // URL de la imagen archivo constante = 'GFG.jpeg' // Ruta en la que se descargará la imagen const filePath = `${__dirname}/archivos` descargar(archivo, rutadelarchivo).luego(() => { console.log('Descarga completada') })
originalmente quería rastrear los fondos de pantalla de Baidu, pero la resolución no era suficiente y había marcas de agua, etc. Más tarde, un amigo del grupo encontró una API, que probablemente era un fondo de pantalla de alta definición en una determinada aplicación móvil. , y podría usarse directamente. Después de obtener la URL de descarga, la usé directamente.
El siguiente es el código completo
const download = require('descargar') constante axios = requerir('axios') dejar encabezados = { 'Agente de usuario': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/87.0.4280.88 Safari/537.36', } función dormir (tiempo) { devolver nueva Promesa((reslove) => setTimeout(reslove, time)) } carga de función asíncrona (saltar = 0) { datos constantes = esperar axios .conseguir( 'http://service.picasso.adesk.com/v1/vertical/category/4e4d610cdf714d2966000000/vertical', { encabezados, parámetros: { límite: 30, // Devolución fija de 30 elementos por página skip: skip, primero: 0, orden: 'caliente', }, } ) .entonces((res) => { devolver res.data.res.vertical }) .catch((err) => { consola.log(err) }) espera descargar archivo (datos) espera dormir (3000) si (saltar <1000) { cargar(saltar + 30) } demás { console.log('Descarga completada') } } función asíncrona descargar archivo (datos) { for (let index = 0; index < data.length; index++) { elemento constante = datos[índice] // Ruta en la que se descargará la imagen const filePath = `${__dirname}/belleza` en espera de descarga (item.wp, filePath, { nombre de archivo: item.id + '.jpeg', encabezados, }).entonces(() => { console.log(`Descarga ${item.id} completada`) devolver }) } }En el código de
carga () anterior,
primero debe configurar User-Agent
y establecer un retraso de 3 segundos. Esto puede evitar que el servidor bloquee el rastreador y devuelva 403 directamente.
Simplemente use node index.js
y la imagen se descargará automáticamente.
,
la experiencia de búsqueda del mini programa WeChat de " Watermelon Gallery ".
https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c5301b8b97094e92bfae240d7eb1ec5e~tplv-k3u1fbpfcp-zoom-1.awebp?