Скачивание файлов
При веб-скрапинге часто возникает необходимость загружать различные файлы, такие как изображения, PDF-документы или другие бинарные файлы. В этом примере мы рассмотрим, как скачивать файлы с помощью Crawlee и сохранять их в хранилище ключ-значение по умолчанию.
Скрипт выполняет простую задачу: загружает несколько файлов через HTTP-запросы, используя специальный класс FileDownload
, и сохраняет их содержимое в хранилище ключ-значение по умолчанию.
При локальной конфигурации данные сохраняются в виде файлов в директории ./storage/key_value_stores/default
.
Run on
import { FileDownload } from 'crawlee';
// Создаем FileDownload - экземпляр пользовательского краулера, который будет загружать файлы из URL.
const crawler = new FileDownload({
async requestHandler({ body, request, contentType, getKeyValueStore }) {
const url = new URL(request.url);
const kvs = await getKeyValueStore();
await kvs.setValue(url.pathname.replace(/\//g, '_'), body, { contentType: contentType.type });
},
});
// Список начальных URL для сканирования. Здесь мы используем несколько жестко закодированных URL.
await crawler.addRequests([
'https://pdfobject.com/pdf/sample.pdf',
'https://download.blender.org/peach/bigbuckbunny_movies/BigBuckBunny_320x180.mp4',
'https://upload.wikimedia.org/wikipedia/commons/c/c8/Example.ogg',
]);
// Запускаем сканер и ждем, пока он закончится.
await crawler.run();
console.log('Краулер закончил работу.');