Основи роботи з BeautifulSoup. Розбір, як витягувати теги та атрибути. Приклади для початківців.
📌 Знайомимося з BeautifulSoup! Якщо вам потрібно витягнути інформацію з HTML-коду, бібліотека BeautifulSoup стане в пригоді. Вона дозволяє легко аналізувати та знаходити потрібні елементи.
📌 Як спарсити всі посилання на веб-сторінці за допомогою Python
Сьогодні розглянемо, як автоматично зібрати всі посилання з веб-сторінки за допомогою бібліотек BeautifulSoup та requests. Це корисний інструмент для SEO, оскільки дозволяє швидко отримати інформацію про структуру посилань на сайті.
from bs4 import BeautifulSoup
import requests
url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
links = []
for link in soup.find_all('a', href=True):
links.append({
'text': link.get_text(strip=True),
'url': link['href']
})
print(links)
Пояснення коду:
1️⃣ Імпортуємо бібліотеки:
from bs4 import BeautifulSoup
import requests
BeautifulSoup з бібліотеки bs4 використовується для аналізу HTML.
requests дозволяє надсилати HTTP-запити, щоб отримати HTML-код веб-сторінки.
2️⃣ Налаштовуємо URL і відправляємо запит:
url = "https://example.com"
response = requests.get(url)
Вказуємо URL, який хочемо проаналізувати, і відправляємо GET-запит.
Результат запиту зберігається в response, який містить HTML-код сторінки.
3️⃣ Парсимо HTML за допомогою BeautifulSoup:
soup = BeautifulSoup(response.text, 'html.parser')
response.text містить HTML-код як текст, який ми передаємо в BeautifulSoup.
soup дозволяє легко працювати з HTML, знаходити та аналізувати потрібні елементи.
4️⃣ Створюємо список для збереження посилань:
links = []
Ініціалізуємо порожній список links, куди будемо додавати інформацію про кожне знайдене посилання.
5️⃣ Знаходимо всі посилання на сторінці:
for link in soup.find_all('a', href=True):
soup.find_all('a', href=True) знаходить всі теги <a>, які містять атрибут href, тобто всі посилання на сторінці.
6️⃣ Отримуємо текст і URL для кожного посилання:
links.append({
'text': link.get_text(strip=True),
'url': link['href']
})
link.get_text(strip=True) отримує текст всередині тега <a>, а link['href'] — URL з атрибуту href.
Створюємо словник з текстом і URL посилання та додаємо його в links.
7️⃣ Виводимо всі зібрані посилання:
print(links)
Після завершення парсингу виводимо links, щоб побачити всі зібрані посилання у вигляді списку словників.
8️⃣Результат
Ваш список links буде виглядати приблизно так:
[
{'text': 'Головна', 'url': 'https://example.com/'},
{'text': 'Про нас', 'url': 'https://example.com/about'},
{'text': 'Контакти', 'url': 'https://example.com/contact'},
...
]
Таким чином, ви отримуєте структурований список всіх посилань на сторінці, що значно спрощує аналіз та обробку.
Цей інструмент корисний для SEO-задач, таких як перевірка внутрішніх та зовнішніх посилань або моніторинг структури сайту.