В ході своєї роботи я пишу багато парсерів інформації з сайтів. Спочатку я це робив на php, але потім прогресивні сайти з великою кількістю javascript’a, або взагалі SPA, змусили мене перейти на Selenium(python).
Selenium – це потужний інструмент для автоматизації веб-браузера, який надає розробникам можливість взаємодіяти з веб-елементами та виконувати різноманітні дії на веб-сторінках. Написаний мовою Python, Selenium є одним з найпопулярніших фреймворків для тестування веб-додатків та автоматизації рутинних завдань на веб-сайтах.
Основною перевагою Selenium є його здатність емулювати поведінку користувача в браузері, що дозволяє автоматизувати тестування веб-додатків так, ніби це робить сам користувач. Це означає, що ви можете автоматично виконувати такі дії, як натискання на кнопки, заповнення форм, навігація по сторінках і взаємодія зі складними веб-елементами.
Однією з ключових складових Selenium є WebDriver, який взаємодіє з веб-браузером і дозволяє виконувати різні дії на веб-сторінці.
Для початку роботи з Selenium потрібно встановити саму бібліотеку, а також драйвер вибраного веб-браузера. Після цього ви можете створити інстанс WebDriver і почати взаємодіяти зі сторінками в Інтернеті. Наприклад, такий код у Python відкриє Google у веб-браузері:
from selenium import webdriver # Шлях до встановленого драйвера браузера service = Service(config['CHROMEDRIVER']) options = webdriver.ChromeOptions() # Створення інстансу веб-браузера (зазвичай Firefox або Chrome) browser = webdriver.Chrome(service=service, options=options) # Відкриття веб-сторінки browser.get("https://www.google.com")
Після відкриття сторінки ви можете використовувати різні методи WebDriver для взаємодії з веб-елементами, такими як знаходження елементів за CSS-селекторами, класами, id тощо, або навіть виконувати скрипти JavaScript.
Selenium також підтримує роботу з кукісами, роботу з вкладками браузера, роботу з формами, введення тексту та багато іншого. Це робить його потужним інструментом для автоматизації рутинних завдань та тестування веб-додатків.
Загалом, Selenium у поєднанні з Python надає зручний та ефективний спосіб автоматизації браузерних дій. Він дозволяє розробникам швидко створювати скрипти для взаємодії з веб-додатками та тестування їх, що робить його невід’ємною частиною інструментарію будь-якого розробника, який працює з веб-технологіями.
Ситуація з якою я зіткнувся полягала у наступному: я написав парсер, що запускає вікно chrome, збирає необхідну інформацію і йде за наступним посиланням. Цей скріпт працює на сервері DigitalOcean, а значить реального монітору немає.
І саме в цій ситуації мені стала в нагоді бібліотека pyvirtualdisplay. Вона емулює монітор з заданими параметрами. Ось приклад її підключення та використання:
from pyvirtualdisplay import Display display = Display(visible=0, size=(1360, 768)) display.start()
Все, в вас є віртуальний монітор. Все так просто, сподіваюсь ця стаття стала вам в нагоді.