Ubuntu 22.04 - это основанная на Debian операционная система Linux, которая является версией с долгосрочной поддержкой (LTS), предоставляя пять лет официальной поддержки и обновлений безопасности.
Она использует современную рабочую среду GNOME, оптимизирует производительность и стабильность, а также содержит последние пакеты и инструменты для поддержки нового оборудования. Кроме того, Ubuntu 22.04 повышает безопасность и обеспечивает более строгие настройки безопасности по умолчанию и защиту конфиденциальности.
Да!
Ubuntu 22.04 имеет кодовое имя Jammy Jellyfish. Он был выпущен 21 апреля 2022 года и является выпуском с долгосрочной поддержкой, поддерживаемым в течение пяти лет, до апреля 2027 года.
Browserless - это мощное браузерное решение. Основанный на облачных кластерах, Browserless предназначен для облегчения сложных задач автоматизации браузера, веб-скрапинга и тестирования масштабируемым и эффективным образом. Он построен на основе всеобъемлющей библиотеки отпечатков Nstbrowser и обеспечивает случайное переключение отпечатков, чтобы удовлетворить потребности пользователей в сборе данных и задачах автоматизации.
Есть ли у вас замечательные идеи и сомнения по поводу веб-скрапинга и Browserless?
Давайте посмотрим, чем делятся другие разработчики на Discord и Telegram!
Перед использованием Browserless вам необходимо предварительно настроить NodeJS.
Ubuntu 22.04 поставляется с пакетом Node.js. Хотя версия по умолчанию может быть не самой последней, ее достаточно для удовлетворения основных потребностей в разработке. Мы используем apt для его установки, что является простым способом.
Шаг 1. Обновите локальный индекс пакетов.
Перед установкой Node.js обновите локальный индекс пакетов:
sudo apt update
Шаг 2. Установите Node.js.
Установите Node.js с помощью менеджера пакетов apt:
sudo apt install nodejs -y
Шаг 3. Установите менеджер пакетов node.
npm используется для управления модулями и пакетами Node.js
sudo apt install npm -y
Шаг 4. Проверьте успешность установки Node.js и npm.
После завершения установки вы можете проверить установленную версию Node.js с помощью следующей команды:
node -v
npm -v
Если вывод показывает информацию о версии, это означает, что установка прошла успешно.

mkdir nst-browserless && cd nst-browserless
npm init -y
code .
В настоящее время Browserless поддерживает только Puppeteer и Playwright. В этом учебном пособии мы решили использовать puppeteer. Далее пришло время установить зависимости:
npm i --save puppeteer-core
На данный момент мы завершили создание проекта.
Доступ к Browserless
Сначала напишите простой процесс, чтобы проверить, можно ли получить доступ к Browserless в обычном режиме:
import puppeteer from "puppeteer-core";
const token = "ваш токен"; // требуется
const config = {
proxy: 'ваш прокси', // требуется
};
const query = new URLSearchParams({
token: token, // требуется
config: JSON.stringify(config),
});
const browserWSEndpoint = `https://less.nstbrowser.io/connect?${query.toString()}`;
const getBrowser = async () => puppeteer.connect({
browserWSEndpoint,
defaultViewport: null,
});
(async () => {
let browser = null;
await getBrowser()
.then(async (browser) => {
const page = await browser.newPage();
await page.goto("https://nstbrowser.io");
await page.screenshot({ path: "screenshot.png", fullPage: true });
await page.close();
await browser.close();
})
.catch((error) => {
console.log(error);
})
.finally(() => browser?.close());
})()
Возможность создания снимка экрана показывает, что мы можем использовать Browserless в обычном режиме:

Скрапинг изображений
Далее мы переходим на сайт Pixels, чтобы скачивать некоторые изображения:
Найдите ссылку на меню навигации:

После анализа мы видим, что ссылка, по которой нужно щелкнуть, является тегом a под элементом li с идентификатором menuTopArt. Далее давайте подробно проанализируем элемент, который нужно сканировать:

Из него видно, что элемент, в котором находится нужное нам изображение, расположен в значении src элемента img с именем класса searchEngineFeaturedProductImage с отложенной загрузкой.
Измените код, который мы написали ранее, чтобы завершить работу по сканированию:
import puppeteer from "puppeteer-core";
const token = "ваш токен api";
const config = {
proxy: 'ваш прокси', // требуется
};
const query = new URLSearchParams({
token: token, // требуется
config: JSON.stringify(config),
});
const browserWSEndpoint = `https://less.nstbrowser.io/connect?${query.toString()}`;
const getBrowser = async () => puppeteer.connect({
browserWSEndpoint,
defaultViewport: null,
});
(async () => {
let browser = null;
const pixelsWebsite = "https://pixels.com";
await getBrowser()
.then(async (browser) => {
const page = await browser.newPage();
await page.goto(pixelsWebsite);
await page.waitForSelector("#menuTopArt", { timeout: 30000 });
await page.click("#menuTopArt a"); // щелкнуть по меню 'Wall Art'
await page.waitForSelector(".searchEngineFeaturedProductImage", { timeout: 30000 });
const imageElements = await page.$$('.searchEngineFeaturedProductImage');
for (const imageElement of imageElements) {
const src = await page.evaluate(el => el.src, imageElement);
if (src.includes("Blank.jpg")) { // прервать, если встречается Blank.jgp
break
}
console.log(src);
// TODO: Добавьте дальнейшую обработку изображения, если необходимо
}
await page.close();
await browser.close();
})
.catch((error) => {
console.log(error);
})
.finally(() => browser?.close());
})()
Отлично! Здесь вы можете найти результат сканирования:

Как же прекрасен Ubuntu! В этом блоге мы узнали, что:
Вы можете видеть, что весь процесс очень легкий и быстрый, а процесс также очень простой.
Начните изучать больше способов игры с Browserless самостоятельно!