Драматург против селена: сравнение двух
15 ноября 2022 г.Быстрый тест с точки зрения парсинга веб-страниц
Немного контекста
В индустрии парсинга веб-страниц мы много раз слышали о Selenium и Playwright, когда нужен полноценный парсер на Python (и, конечно же, Puppeteer для JS). И это почти ирония, что два из наиболее часто используемых инструментов были созданы для других целей, а не для парсинга веб-страниц.
И Selenium, и Playwright, по сути, являются инструментами автоматизации браузера, созданными для того, чтобы помочь фронтенд-разработчикам тестировать свою работу, автоматизируя тесты веб-сайтов, которые они создают с помощью разных браузеров. Но что такое парсер, как не автоматизированный браузер, который бродит по сети?
Что такое селен?
Как упоминалось ранее, Selenium – это платформа автоматизированного тестирования с открытым исходным кодом, используемая для проверки веб-приложений в различных браузерах и на разных платформах.
Это пакет с несколькими компонентами и модулями, и вы можете найти отличное объяснение его истории в этой замечательной записи в блоге Кришны. Рунгта.
Для наших целей веб-скрапинга важнее всего то, что он поддерживает Firefox, Edge, Safari и Chrome через их веб-драйверы, которые необходимо устанавливать отдельно. Веб-драйвер — это интерфейс управления для браузера, своего рода «пульт дистанционного управления» для браузеров.
На высоком уровне типичный парсер работает следующим образом:
* Selenium WebDriver получает команду от парсера * Команды преобразуются в HTTP-запрос по проводному протоколу JSON. * Перед выполнением каких-либо тестов каждый браузер имеет свой драйвер, который инициализирует сервер. * Затем браузер начинает получать запрос через свой драйвер.
Что такое драматург?
Playwright – это библиотека Node.js с открытым исходным кодом, запущенная Microsoft для автоматизации браузеров на основе Chromium, Firefox и WebKit. через единый API, созданный той же командой, которая работала над Puppeteer в Google.
Основная цель Playwright – улучшить автоматизированное тестирование пользовательского интерфейса.
Он, конечно, очень похож на Puppeteer, который работает только с браузерами на основе Chromium и поддерживает только язык Javascript.
В индустрии автоматизированного тестирования Playwright получил много хороших отзывов о своей скорости: об этом есть отличный тест от Checkly, который сравнивает несколько фреймворков для автоматизированного тестирования, включая Selenium, Playwright и Puppeteer.
Его архитектура сильно отличается от архитектуры Selenium, поскольку он напрямую взаимодействует со слегка модифицированными версиями браузеров, входящих в установочный пакет, через API, без необходимости использования веб-драйвера.
Это делает настройку довольно простой, но не исключает возможности взаимодействия со стандартным Chrome вместо встроенного.
Мои два цента
Вы могли заметить, что я часто упоминал Puppeteer, но это выходит за рамки этого поста. Это потому, что его можно запрограммировать только на Javascript, а не на Python, который я предпочитаю.
Да, есть Pyppeteer, но это неофициальный порт Puppeteer на Python, и я еще не пробовал.
Ограничивая сравнение между Selenium и Playwright, мой личный выбор падает на второе.
Простая настройка и обслуживание имеют большое значение для большого проекта веб-скрейпинга, а интеграция с другими пакетами, такими как playwright_stealth, позволяет избежать обнаружения ботов. простой.
Возможность перехода с одного браузера на другой без необходимости что-либо устанавливать делает исправление парсеров быстрым и дает множество возможностей.
Вы также можете использовать установку Chrome с использованием постоянного контекста, что означает, что у вас может быть реальный профиль пользователя для всего выполнения парсера.
Я оставляю вам эту замечательную статью от Scrapfly, где вы можете увидеть, как работает Playwright. и немного кода для проверки.
Спасибо, что читаете The Web Scraping Club. Эта запись является общедоступной, поэтому не стесняйтесь поделиться ею.
Последние сообщения в лаборатории
- ЛАБОРАТОРИЯ №6: Изменение шифров в Scrapy, чтобы избежать банов с помощью TLS Fingerprinting
- ЛАБОРАТОРИЯ № 5: Лаборатория № 5 — парсинг Airbnb.com с помощью GraphQL< /а>
- ЛАБОРАТОРИЯ №4: Scrapyd — как управлять парком парсеров и планировать их выполнение< /li>
- ЛАБОРАТОРИЯ №3: парсинг веб-сайтов, защищенных Cloudflare
- ЛАБОРАТОРИЯ №2: сбор данных с веб-сайта с токенами Datadome и xsrf
- ЛАБОРАТОРИЯ №1: сбор данных из приложения
Также опубликовано здесь
Оригинал