Вебскрапінг із Python та Requests-HTML
Незалежно від того, чи ви лише починаєте з вебскрапінгу, чи хочете опанувати потужніший інструмент, requests-HTML це спрощує та підвищує ефективність отримання потрібних вам даних. Давайте зануримося!
Що таке вебскрапінг?
Вебскрапінг означає процес вилучення даних із вебсторінки. Це робиться шляхом надсилання HTTP-запиту до вебсторінки, завантаження HTML-вмісту та його аналізу, щоб витягнути потрібну вам інформацію. Цими даними може бути що завгодно — від заголовків статей до посилань і цін на товари.
У найпростішому вигляді вебскрапінг складається з трьох основних кроків:
- Надсилання HTTP-запиту: Це перший крок, на якому ми звертаємося до сайту по його вміст (зазвичай HTML-сторінку).
- Парсинг HTML: Після того як ми отримали HTML-вміст, нам потрібно його проаналізувати, щоб витягти змістовні дані. Прочитайте мою статтю про найкращі парсери HTML для Python.
- Збереження даних: Нарешті, ми зберігаємо витягнуті дані, зазвичай у форматах на кшталт CSV або JSON, щоб потім можна було їх далі аналізувати.
Чому варто обрати requests-HTML для вебскрапінгу?
У Python є багато бібліотек для вебскрапінгу, зокрема requests, BeautifulSoup, і Selenium. Тож чому варто розглянути використання requests-HTML?
Ось кілька причин, чому requests-HTML — чудовий інструмент для вебскрапінгу:
- JavaScript Rendering: Багато вебсайтів сьогодні покладаються на JavaScript для завантаження свого контенту. На відміну від базових HTTP-запитів, які отримують лише статичний HTML, requests-HTML може рендерити JavaScript, що дає змогу збирати контент, який динамічно завантажується на сторінці.
- Simple API: API дуже простий і легкий для розуміння. Якщо ви знайомі з requests, вам буде дуже зручно працювати з requests-HTML.
- Built-in Parsing: requests-HTML має вбудовані методи парсингу HTML, які дають змогу використовувати CSS-селектори та вирази XPath для вилучення конкретних даних з HTML.
Встановлення requests-HTML
Щоб почати роботу з requests-HTML, спочатку потрібно його встановити. Це можна зробити за допомогою менеджера пакетів pip. Відкрийте термінал і введіть таку команду:
pip install requests-html
Також варто встановити pandas, якщо ви плануєте працювати з великими обсягами даних:
pip install pandas
Після завершення встановлення ви можете почати використовувати requests-HTML у своїх Python-скриптах.
Налаштування сесії
The first thing you need to do when using requests-HTML is to create a session. A session is an object that keeps track of all the requests you make during a session. To create a session, you need to import the HTMLSession class from the requests_html module.
Ось як налаштувати сесію та надіслати GET-запит:
from requests_html import HTMLSession
# Create a session
session = HTMLSession()
# Send a GET request to the URL
url = "https://example.com"
response = session.get(url)
Тепер об’єкт response містить HTML-контент вебсторінки, яку ви запитали. Потім ви можете розібрати цей вміст, щоб витягти корисну інформацію.
Parsing HTML Content
Після того як ви отримаєте HTML-вміст, наступний крок - розібрати його. Ви можете використати вбудований метод find() у requests-HTML, який дає змогу витягувати елементи за допомогою CSS-селекторів. Також можна використати метод xpath() для витягування елементів за допомогою XPath-виразів.
Наприклад, припустімо, що ви хочете витягти заголовок вебсторінки:
# Find the title element and get the text
title = response.html.find('title', first=True).text
print(заголовок)
У цьому прикладі метод find() знаходить

