import random
import json
import requests
import datetime
from bs4 import BeautifulSoup
from fake_useragent import UserAgent
# Создание объекта UserAgent для генерации случайных user-agent'ов
ua = UserAgent()
# Заголовки для запросов
headers = {
'accept': 'application/json, text/plain, */*',
'user-Agent': ua.google,
}
# Словарь для хранения статей
article_dict = {}
# Парсинг страниц с топовыми статьями
for i in range(1, 4):
url = f'https://habr.com/ru/top/daily/page{i}/'
# Отправка GET-запроса и получение HTML-страницы
req = requests.get(url, headers=headers).text
# Создание объекта BeautifulSoup для парсинга HTML
soup = BeautifulSoup(req, "html.parser")
# Поиск ссылок на статьи
all_hrefs_articles = soup.find_all("a", class_='tm-title__link')
# Итерация по найденным ссылкам
for article in all_hrefs_articles:
# Получение названия и ссылки статьи
article_name = article.find('span').text
article_link = f'https://habr.com{article.get("href")}'
# Добавление статьи в словарь
article_dict[article_name] = article_link
# Запись словаря со статьями в JSON-файл
with open(f"articles_{datetime.datetime.now().strftime('%d_%m_%Y')}.json", "w", encoding='utf-8') as f:
try:
json.dump(article_dict, f, indent=4, ensure_ascii=False)
print('Статьи были успешно получены')
except:
print('Статьи не удалось получить')Надеюсь помог ;)