Модуль 2.5 Робота з даними

OSINT БІБЛІОТЕКИ

Курс: Python для аналітиків з нуля

1. ЩО НАВЧИМОСЯ РОБИТИ

Витягти текст з веб-сторінки, зберегти структуровано. Знайти всі посилання.

OSINT — збір даних з відкритих джерел. BeautifulSoup парсить HTML, requests завантажує. Цього вистачає для 80% задач.

2. ТЕРМІНОЛОГІЯ

BeautifulSoup

Бібліотека для парсингу HTML. Витягує текст, теги, атрибути.

soup.find()

Знайти перший елемент за тегом або класом.

soup.find_all()

Знайти всі елементи.

tag.text

Текст всередині тега (без HTML).

tag['href']

Атрибут тега (наприклад, посилання).

3. ТЕОРІЯ

3.1 Базовий парсинг

import requests

3.2 Пошук елементів

# За тегом

3.3 Витяг атрибутів

# Всі посилання

4. КОД З КОМЕНТАРЯМИ

Збір посилань з новинного сайту:

import requests

5. РОЗБІР ПО РЯДКАХ

BeautifulSoup(html, 'html.parser') — другий аргумент обов'язковий. Інші варіанти: 'lxml' (швидший), 'html5lib' (точніший).

.text.strip() — витяг тексту + видалення пробілів на початку/кінці
urljoin(base, relative) — перетворити відносне посилання (/article/123) у повне (https://site.com/article/123)
link_tag['href'] — доступ до атрибута. Викине помилку якщо немає, тому використовувати .get('href')

6. ЗАВДАННЯ 1: ПРОМПТ ДЛЯ AI

Задача: зібрати email адреси з сайту

Приклад промпту:

Напиши Python скрипт що завантажує HTML з URL, знаходить всі email адреси (regex або BeautifulSoup), видаляє дублікати, зберігає у текстовий файл (один email на рядок). Використай requests, BeautifulSoup, re. Додай обробку timeout. Regex для email: r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}'

7. ЗАВДАННЯ 2: ТАБЛИЧНІ ДАНІ

Багато сайтів мають таблиці (розклади, статистика). BeautifulSoup + pandas:
# Знайти таблицю

8. РЕФЛЕКСІЯ

Я вмію парсити HTML через BeautifulSoup

Я знаю find() та find_all()

Я витягую текст та атрибути

Я можу зібрати посилання або таблиці

Я комбіную requests + BeautifulSoup + pandas

9. ЩО ДАЛІ

Модуль 2.6: Автоматизація документів — генерація звітів Word/Excel

Головна думка: Requests завантажує, BeautifulSoup парсить, pandas структурує. Трійка для OSINT.

Рефлексія

Прогрес модуля 0%