CoderCastrov logo
CoderCastrov
Парсер

Парсинг с помощью Playwright

Парсинг с помощью Playwright
просмотров
2 мин чтение
#Парсер

В этой статье я расскажу о своем опыте работы с Playwright и покажу несколько примеров того, как начать работу с этим инструментом.

Playwright - это библиотека Node.js, которая позволяет проводить надежное тестирование конечных точек для веб-приложений. Она предоставляет набор API для автоматизации браузеров Chromium, Firefox и WebKit. Используя API Playwright, вы можете писать JavaScript код для создания новых страниц браузера, перехода по URL-адресам и взаимодействия с элементами на странице.

Вместе с тестовым исполнителем Playwright может быть использован для автоматизации пользовательских взаимодействий для проверки и тестирования веб-приложений.

Для создания проекта и установки Playwright **просто выполните следующие команды, используя yarn или npm. Как показано в примере ниже:

$ mkdir web-scrapping
$ cd web-scrapping
$ yarn init -y
$ yarn add playwright#or$ npm init
$ npm i playwright --save

Для начала работы мы будем использовать сайт [www.buscape.com.br](http://www.buscape.com.br) в качестве примера, чтобы иметь первый опыт работы с Playwright. С помощью приведенного ниже кода можно увидеть, что страница Busca Pé будет открыта на 3 секунды, а затем автоматически закроется.

Чтобы запустить этот фрагмент кода, просто введите следующую команду.

$ node src/index.js

В этом случае я выбрал браузер Chromium, но ту же самую манипуляцию можно выполнить в других браузерах, так как Playwright может создавать собственные браузеры.

Таким образом, с помощью этого небольшого кода и изображения ниже вы можете представить, как это будет работать.

Теперь давайте немного поговорим о производительности

Мой совет для более эффективного парсинга - использовать блокировку маршрутов, которые не являются на данный момент важными, например, адреса изображений на сайте. С помощью следующего кода мы можем прервать эти запросы, делая парсинг более быстрым. Мы блокируем все запросы, оканчивающиеся расширениями {png,jpg,jpeg}, экономя ненужные загрузки во время парсинга.

В моем опыте парсинга веб-сайтов я столкнулся с небольшой проблемой. Иногда парсинг работал, а иногда нет, пока я не проанализировал вкладку network в инструментах разработчика в браузере и не заметил, что при парсинге данных на сайте он еще не загрузил все данные, которые мне нужны. Тогда я обнаружил функцию, которая ожидает завершения всех запросов, чтобы продолжить. И я хочу поделиться ею с вами.

Я сделал несколько интересных парсингов и опубликовал их на моем Github, если вы хотите посмотреть.

RayzaOliveira/web-scraping-with-playwright: 🎭 Playwright позволяет надежно тестировать веб-приложения. (github.com)

Источники исследования

Быстрая и надежная тестирование end-to-end для современных веб-приложений | Playwright

microsoft/playwright: Библиотека Node.js для автоматизации Chromium, Firefox и WebKit с использованием одного API (github.com)