Веб-скрапинг: Puppeteer против Selenium

Web scraping is the process of extracting data from websites. You can scrape manually using web browsers or automate it with libraries like Selenium and Puppeteer.

Selenium - это инструмент с открытым исходным кодом, позволяющий автоматизировать работу веб-приложений и тестировать функциональность сайта без необходимости написания кода в браузере. Он также работает с другими языками программирования, такими как Java, Python, C# и т.д.

Puppeteer - это JavaScript-библиотека для автоматизации тестирования браузера Chrome на безголовых Linux-системах. Puppeteer поддерживает Chrome и был протестирован на Ubuntu 16.04 LTS, 18.04 LTS и Debian 9 Stretch/Buster/Siduction (64-bit). 

В этой статье мы узнаем, как использовать Selenium WebDriver в NodeJS с Puppeteer для автоматизации приложений с помощью браузера Chrome.

Меню

Что такое кукловод?

Puppeteer - это библиотека JavaScript, позволяющая управлять браузером с помощью puppeteer.js. Библиотека предоставляет API для создания, управления и взаимодействия с веб-страницами, не прибегая к помощи сторонних разработчиков. Она также поддерживает перехват событий мыши и ввода с клавиатуры, что позволяет взаимодействовать со страницей.

Как работает Puppeteer?

Puppeteer - это узловая библиотека для управления браузером Chrome. Она позволяет управлять браузером с помощью JavaScript и взаимодействовать с ним таким образом, который невозможен при использовании только HTML, CSS и JS.

С его помощью можно имитировать события мыши/клавиатуры, делать скриншоты, манипулировать элементами DOM, отправлять HTTP-запросы и т.д. Puppeteer также имеет API, который позволяет писать свои кукловодческие скрипты, не используя напрямую ни один из его API. Подробнее об API можно прочитать здесь: https://github.com/puppeteerjs/puppeteer-api.

Puppeteer решает следующую проблему: как управлять браузером, не имея возможности выполнить JavaScript? Puppeteer позволяет имитировать события мыши/клавиатуры, делать скриншоты, манипулировать элементами DOM, отправлять HTTP-запросы и многое другое. Кроме того, можно писать свои сценарии кукловодства, не используя напрямую ни один из его API. Это удобно, если вы хотите создать собственное расширение для Chrome, неожиданно взаимодействующее с браузером.

Сложность и контекст автоматизации меняются с каждым днем, поэтому один инструмент не может быть решением для всех. Puppeteer имеет некоторые ограничения. Он поддерживает только браузер Chrome. Работа над Puppeteer для Firefox продолжается.

Каковы преимущества использования Puppeteer? 

Puppeteer предоставляет простой способ запуска скриптов в браузере без необходимости их самостоятельного написания. Он прост, легок и расширяем. Его можно использовать с любым языком программирования или фреймворком (NodeJS, Python, Java). Он имеет свой собственный API, поэтому вам не придется изучать другой API только для целей веб-скрапинга.

Для использования Puppeteer не нужно знать, как работает Selenium, но при этом вы получаете все его преимущества: автоматизацию, тестируемость и переносимость!

Каковы недостатки использования Puppeteer?

Puppeteer - очень молодой фреймворк. Он все еще находится в стадии бета-версии и поддерживает не все браузеры (только Chrome, Firefox, Opera и Safari). Однако со временем Puppeteer сможет поддерживать больше браузеров. API также не так развит, как у Selenium, поэтому на начальном этапе могут возникнуть некоторые проблемы, но со временем все станет лучше. Много примеров использования Puppeteer можно найти на его официальном сайте: puppeteerjs.com/docs/getting-started/. 

Как установить Puppeteer? 

Установить Puppeteer можно либо загрузив пакет с сайта, либо установив его вручную. Перейдите на страницу репозитория Puppeteer и загрузите последнюю версию для вашей операционной системы. Для работы Puppeteer на компьютере должен быть установлен NodeJS. Если вы не знаете, с чего начать, перейдите сюда: nodejs.org/en/download. Выполните команду npm install -g puppet. В результате будут загружены все необходимые зависимости для запуска puppetserver. Теперь откройте окно терминала в своем домашнем каталоге и введите puppetserver. 

Если все прошло нормально, вы должны увидеть что-то вроде этого: 

$ node server Starting server… done! http://localhost:4200 Connecting…done! http://localhost:4200 Disconnected / Connected http://localhost:4200 <– Start scraping now! 

Для остановки нажмите Ctrl+C, затем введите exit. 

Что такое селен?

Selenium is a potent tool that you can use to automate web-based applications. It is also commonly referred to as the Webdriver. Selenium has been around for quite some time, and it has become one of the most popular tools in the IT industry. 

Что делает селен?

Selenium allows you to automate your websites by executing different actions such as clicking buttons, filling out forms, or even navigating through pages. The main goal of this software is to make automated testing easy and efficient without having to write any code yourself. You can use this software from your browser (Chrome/Firefox) or within a programming language like Java, C# or Python, etc. Once installed on your computer, you must download the selenium server, which runs on port 4444 (default). Then open up Chrome/Firefox and type in chrome://extensions into the address bar where you will see a list of available extensions; select Manage Extensions, then click the Load Unpacked Extension button.

Selenium можно использовать для тестирования веб-сайтов, мобильных и настольных приложений. Он прост в использовании и позволяет автоматизировать работу веб-приложений без каких-либо знаний в области программирования. Кроме того, можно создавать собственные тесты с помощью Selenium IDE, которая имеет визуальный интерфейс для разработки тестов в удобном для пользователя виде.

Преимущества селена

  • Он работает во всех веб-браузерах (Chrome, Firefox, IE) и на мобильных устройствах (Android). Selenium является кроссплатформенным. Достаточно установить IDE для выбранной платформы и начать использовать API. Вам не придется изучать новые API или разные языки для каждой платформы - достаточно использовать один язык, который работает на всех платформах. 
  • Selenium поддерживает большинство языков программирования, включая Java, C#, Python и многие другие. Если вы хотите автоматизировать что-либо на JavaScript, можно использовать NodeJS с помощью selenium-nodejs. 
  • Selenium поддерживает несколько фреймворков, таких как Protractor, WebDriver и т.д. Самое лучшее в этих фреймворках то, что они предоставляют хороший слой абстракции, который делает все проще, чем чистый код автоматизации браузера, написанный непосредственно в самом браузере. Например, если мы хотим, чтобы наши тесты выполнялись одновременно в нескольких браузерах, то мы можем сделать это с помощью selenium-web driver и selenium-webdriver2. Это означает, что у нас не возникнет проблем при тестировании сразу в нескольких браузерах, поскольку все будет происходить за счет фреймворка, а не за счет ручного написания пользовательского кода в каждом браузере (что значительно усложнило бы наш набор тестов). 
  • Для Selenium существует множество плагинов, например, расширения для Google Chrome, Firefox и т.д. Что еще? Множество примеров! Причем не только из открытых, но и из коммерческих проектов, таких как Appium, Sauce Labs или Watir. Так что если вы ищете что-то быстрое и простое, попробуйте их! Это отличные инструменты! Они также поддерживают асинхронное тестирование, что означает, что даже если ваш тест может занять больше времени, чем ожидалось, это не повлияет на другие тесты, выполняющиеся параллельно, не блокируя поток выполнения друг друга (асинхронный режим). Таким образом, мы можем писать быстрые UI-тесты, не беспокоясь о замедлении работы нашего приложения. 

Тенденции развития рынка Selenium и Puppeteer свидетельствуют о значительном росте их использования за последние несколько лет, особенно после выхода Selenium 2 в 2014 году. С тех пор популярность Selenium еще больше возросла, а это значит, что в обозримом будущем она, скорее всего, продолжит расти такими же темпами. 

Каково будущее веб-тестирования? 

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

Средства веб-автоматизации: Почему их следует использовать? 

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

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

Использование средств автоматизации значительно облегчит вам жизнь, позволив писать автоматизированные тесты для вашей кодовой базы, не задумываясь о том, как все работает "под капотом". 

Selenium или Puppeteer: Что лучше для веб-скрапинга?

Основное различие между ними заключается в том, что Puppeteer работает в Node.js, а Selenium - в браузере.

You can use Puppeteer for web scraping and API testing, but it’s not as widely supported as Selenium. It also doesn’t have a built-in UI test runner, so you’ll need to write your own if you want to use it with a headless browser like PhantomJS or NightwatchJS.

Selenium имеет более широкую поддержку браузеров, чем Puppeteer, и его прогонщик UI-тестов работает "из коробки" с большинством популярных браузеров (включая Chrome). Однако некоторые возможности Selenium по сравнению с Puppeteer все же отсутствуют. В частности, API WebDriver для взаимодействия с элементами на странице, что означает, что автоматизировать сложные взаимодействия на нескольких страницах/доменах/приложениях (например, щелчки по ссылкам) с помощью только этой библиотеки будет сложнее. 

Now is the right moment to mention that our rotating residential proxies vastly improve web scraping operations with both Selenium and Puppeteer.

In this Article:
Leave behind the complexities of web scraping.
Opt for IPBurger’s advanced web intelligence solutions to effortlessly collect real-time public data.
Зарегистрироваться

Еще глубже погрузиться в тему

Прокси-серверы
Эй Джей Тейт
The Best Rayobyte Alternative for Ethical, Scalable and High-Performance Proxies

Why More Users Are Searching for a Rayobyte Alternative Rayobyte has earned its place as a respected proxy provider, offering datacenter, ISP, and residential proxies to businesses and individuals needing bulk IPs. With competitive pricing and a variety of proxy types, it’s been a go-to choice for many in web

Без категории
Эй Джей Тейт
The Best Storm Proxies Alternative: Faster, Safer & More Affordable Proxies

Looking for a Storm Proxies Alternative? Storm Proxies sells the dream: simple, affordable proxies that “just work.” And for some users? It kind of delivers. Until it doesn’t. Because here’s the reality—if you’re pulling small data sets, running light scraping jobs, or dipping your toes into sneaker copping, Storm Proxies

Прокси-серверы
Эй Джей Тейт
The Best IPRoyal Alternative for Power, Control & Price

Outgrowing IPRoyal? Here’s the Smarter Alternative If you’ve been using IPRoyal, chances are it was for one simple reason—it’s cheap. And in the world of proxies, “cheap” can be enough to get you started. But here’s the thing about IPRoyal: it’s a gateway, not a long-term solution. At first, it

Scale Your Business
With The Most Advanced
Proxies On Earth
Присоединяйтесь к удостоенной наград прокси-сети №1