Как быстро начать работу с VUE3.0: Вступаем в обучение
Всем привет, я Xiaoma, зачем мне загружать столько картинок? Несколько дней назад я бесплатно развернул апплет обоев с помощью uni-app + uniCloud. Затем мне нужны некоторые ресурсы для заполнения содержимого апплета.
сначала инициализируйте проект и установите axios
и cheerio
npm init -y && npm i axios. Cheerio
axios
используется для сканирования веб-контента. cheerio
— это API jquery на стороне сервера. Мы используем его для получения адреса изображения в файле. дом;
const аксиос = требуется ('аксиос') const Cheerio = require('Cheerio') функция getImageUrl(target_url,ContainerEelment) { пусть список_результатов = [] const res = ожидайте axios.get(target_url) const html = res.data const $ = развеселить.load(html) константный список_результатов = [] $(containerEelment).each((element) => { result_list.push($(element).find('img').attr('src')) }) вернуть список_результатов }
Таким образом вы можете получить URL-адрес изображения на странице. Далее вам необходимо скачать изображение по URL.
Способ 1. Используйте встроенные модули «https» и «fs».
Загрузку файлов с помощью nodejs можно выполнять с помощью встроенных пакетов или сторонних библиотек.
Метод GET используется с HTTPS для загрузки файла. createWriteStream()
— это метод, используемый для создания записываемого потока. Он получает только один параметр — место сохранения файла. Pipe()
— это метод, который считывает данные из потока, доступного для чтения, и записывает их в поток, доступный для записи.
const fs = require('fs') const https = требуется('https') //URL изображения константный URL = 'GFG.jpeg' https.get(url, (res) => { // Изображение будет храниться по этому пути const path = `${__dirname}/files/img.jpeg` const filePath = fs.createWriteStream(путь) res.pipe(путь к файлу) filePath.on('Готово', () => { путь к файлу.закрыть() console.log('Загрузка завершена') }) })
Способ 2: DownloadHelper
npm install node-downloader-helper
Ниже приведен код для загрузки изображений с веб-сайта. Объект dl создается классом DownloadHelper, который получает два параметра:
Переменная File содержит URL-адрес изображения, которое будет загружено, а переменная filePath содержит путь к файлу, который будет сохранен.
const { DownloaderHelper } = require('node-downloader-helper') //URL изображения константный файл = 'GFG.jpeg' // Путь, по которому будет загружено изображение const filePath = `${__dirname}/files` const dl = новый DownloaderHelper (файл, путь к файлу) dl.on('end', () => console.log('Загрузка завершена'))Третий метод
dl.start()
: использование загрузки.
Он написан npm master sindresorhus. Его очень легко использовать.
npm install download.
Ниже приведен код для загрузки изображений с веб-сайта. Функция загрузки получает файл и путь к файлу.
const download = require('загрузить') // URL изображения константный файл = 'GFG.jpeg' // Путь, по которому будет загружено изображение const filePath = `${__dirname}/files` скачать(файл, путь к файлу).then(() => { console.log('Загрузка завершена') })
изначально хотел сканировать обои Baidu, но разрешения было недостаточно, были водяные знаки и т. д. Позже друг в группе нашел API, который, вероятно, был обоями высокой четкости в определенном мобильном приложении. и его можно было использовать напрямую. Получив URL-адрес для загрузки, я использовал его напрямую.
Ниже приведен полный код:
const download = require('download') const axios = require('axios') пусть заголовки = { «Агент пользователя»: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/87.0.4280.88 Safari/537.36', } функция сна(время) { вернуть новое обещание((reslove) => setTimeout(reslove, time)) } асинхронная функция load(skip = 0) { константные данные = ждут аксиомы .получать( 'http://service.picasso.adesk.com/v1/vertical/category/4e4d610cdf714d2966000000/vertical', { заголовки, параметры: { limit: 30, // Фиксированный возврат 30 элементов на страницу Skip: Skip, первый: 0, порядок: «горячий», }, } ) .then((res) => { вернуть res.data.res.vertical }) .catch((ошибка) => { console.log(ошибка) }) ожидайте загрузкиФайл (данные) жду сна(3000) если (пропустить <1000) { нагрузка(пропустить + 30) } еще { console.log('Загрузка завершена') } } асинхронная функция downloadFile(данные) { for (let index = 0; index < data.length; index++) { константный элемент = данные[индекс] // Путь, по которому будет загружено изображение const filePath = `${__dirname}/beauty` ожидайте загрузки (item.wp, filePath, { имя файла: item.id + '.jpeg', заголовки, }).then(() => { console.log(`Загрузка ${item.id} завершена`) возвращаться }) } }В приведенном выше коде
load()
вы должны сначала установить User-Agent
и задержку в 3 секунды. Это может помешать серверу заблокировать сканер и напрямую вернуть 403.
Просто используйте node index.js
, и изображение будет загружено автоматически.
,
опыт поиска мини-программы WeChat в « Галере арбуза ».
https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c5301b8b97094e92bfae240d7eb1ec5e~tplv-k3u1fbpfcp-zoom-1.awebp?