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 requests3.2 Пошук елементів
# За тегом3.3 Витяг атрибутів
# Всі посилання4. КОД З КОМЕНТАРЯМИ
Збір посилань з новинного сайту:
import requests5. РОЗБІР ПО РЯДКАХ
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 + pandas9. ЩО ДАЛІ
Модуль 2.6: Автоматизація документів — генерація звітів Word/Excel
Головна думка: Requests завантажує, BeautifulSoup парсить, pandas структурує. Трійка для OSINT.