/
Kirby
/
WebScrapping
Обзор
Документация
Войти
/
Kirby
/
WebScrapping
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
parser.py
43 строки
1 KB
Alex
Исправлены ошибки
22 май 2026, 14:18
22 май 2026, 14:18
6563d4f
Код
Авторство
О чём код?
import requests from bs4 import BeautifulSoup KEYWORDS = ['дизайн', 'фото', 'web', 'python'] URL = 'https://habr.com/ru/all/' HEADERS = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36' } session = requests.Session() session.headers.update(HEADERS) response = session.get(URL, timeout=30) soup = BeautifulSoup(response.text, 'html.parser') articles = soup.find_all('article') for article in articles: title_tag = article.find('h2') if not title_tag: continue link_tag = title_tag.find('a') title = link_tag.text.strip() link = link_tag['href'] if not link.startswith('http'): link = 'https://habr.com' + link date_tag = article.find('time') date = date_tag.text.strip() if date_tag else 'Дата неизвестна' preview_tag = article.find('div', class_='tm-article-snippet__lead') preview_text = preview_tag.text.strip().lower() if preview_tag else '' meta_text = '' meta_tags = article.find_all(['span', 'div'], class_='tm-article-snippet__meta') for tag in meta_tags: meta_text += ' ' + tag.text.strip().lower() full_preview = (title.lower() + ' ' + preview_text + ' ' + meta_text).strip() if any(k.lower() in full_preview for k in KEYWORDS): print(f'{date} – {title} – {link}')