Проблема к кодом парсера
Пишу парсер на питоне. Цель - собрать данные с новостного ресурса за год (01.01.2023 до 01.01.2024). Собираю заголовки, теги, ссылки, тексты новостей и т.д. Какой-то код написал, но он выдаёт не то, что мне нужно (просто генерирует пустые списки). Буду благодарен, если кто сможет помочь исправить ошибки. Код прикрепляю.
import requests
from bs4 import BeautifulSoup as bsop4
from tqdm import tqdm
from datetime import datetime, timedelta
start_date = datetime(2023, 1, 1)
end_date = datetime(2023, 12, 31)
delta = timedelta(days=1)
while start_date < end_date:
date_str = start_date.strftime('%Y/%m/%d')
url = f"https://www.gazeta.ru/politics/news/{date_str}/"
def parsing(URL: str):
page = requests.get(URL)
html_page = bsop4(page.text, "lxml")
try:
title = html_page.find('h2', class_='headline').text
except:
title = html_page.find('div', class_='b_ear-title').text
print(f"Заголовок: {title}")
subtitle = html_page.find("div", class_="b_ear-intro").text
print(f"Подзаголовок: {subtitle}")
times = html_page.find("time", class_="b_ear-time").text
times = times.split()
print(f"Дата: {times[0]}")
print(f"Время: {times[1]}")
text = ""
for item in html_page.find_all('div', class_='b_article-text'):
text += item.text
print(f'Текст новости: {text}')
tags = []
for item in html_page.find_all("a", class_="tag"):
tags.append(item.text)
print(f'Теги: {tags}')
def parse_urls(date_str: str) -> list:
urls: list = []
page = requests.get(f'https://www.gazeta.ru/politics/news/{date_str}/')
html_page = bsop4(page.text, "lxml")
for item in html_page.find_all('a', class_='b_ear-item'):
urls.append(item.get('href'))
return urls
print(parse_urls(start_date.strftime('%Y/%m/%d')))
start_date += delta