NodeJS Приложение на основе Puppeteer

Цена договорная
25 апреля 2023, 03:30 • 6 откликов • 52 просмотра
Задача: разработать NodeJS приложение на базе Puppeteer и реализовать часть API методов, аналогичных сервису scrapingbee и упаковать в Docker.

Scrapingbee.com - это сервис для скреппинга данных со сторонних сайтов.

Работает так:
1) Формируется GET запрос к сервису, в котором указывается URL, proxy, JS-сценарий, параметры клиента (cookies, headers) и прочее.
2) Сервис с помощью Headless Chrome заходит на этот сайт (используя параметры клиента: прокси, кукисы, заголовки, и тд).
3) Выполняется некий JS сценарий (заполни поле, кликни кнопку и т.д.)
4) Возвращает ответ (например JSON или скриншот)

Документация сервиса: https://www.scrapingbee.com/documentation

Необходимо разработать NodeJS приложение, которое будет иметь ЧАСТИЧНЫЙ аналогичный набор входных параметров и аналогичный формат ответ. Приложение должно принять GET запрос, зайти в Headless Chrome на нужный сайт, выполнить сценарий и вернуть ответ.

Нам нужно это приложение, чтобы частично заменить Scrapingbee у себя в сервисе.

Список параметров, которые должны поддерживаться API приложения:
url - адрес сайта
block_resources
cookies - масив кукис
forward_headers - заголовки
js_scenario - сценарий для выполнения на странице
json_response - просьба вернуть ответ в виде JSON
own_proxy - параметры прокси
render_js - рендерить JS или нет
return_page_source - возвращать исходник страницы в ответе
screenshot - вернуть скриншот
screenshot_full_page - вернуть длинный скриншот
timeout - таймаут запроса
wait - Дополнительное время в мс для рендеринга JavaScript
wait_browser - что именно мы ожидаем перед началом работы (domcontentloaded или др)
wait_for - ожидание конкретного селектора
window_height - высота экрана
window_width - ширина экрана
Отзывы
Очень рад, что познакомился Димой. Очень работоспособный, к проекту подошел ответственно и творчески, вижу, что каждую задачу выполняет качественно, задает правильные вопросы и предлагает оптимальные решения. Рекомендую, сам продолжаю работать с ним.
1 год назад
R50 cf088327f737438b0161254c0d5e2413
Фрилансер
Четкие задачи, интересный опыт, помощь в задачах где могу быть не силен:)
1 год назад