задачу поставил сделать парсер, трудности возникли именно из-за запутанности кода страницы Ссылка удалена модератором.
Много задач передо мной, но для начала ставлю цель просто получить список турниров со страницы в формате:
ATP 500. Барселона, Испания. Одиночный разряд. 1/16 финала
ATP 500. Барселона, Испания. Одиночный разряд. 1/32 финала
ATP 500. Барселона, Испания. Парный разряд. 1/8 финала
WTA 500. Штутгарт, Германия. Одиночный разряд. 1/8 финала
и так далее...
Вот такой у меня код
import aiogram
from aiogram import Bot, Dispatcher, executor, types
bot = Bot(token="6117391894:AAHVUSrYC0AV2C3fyYHwnaSg-YZOcbOrVh8")
dp = Dispatcher(bot)
import requests
from bs4 import BeautifulSoup as b
url = 'Ссылка удалена модератором. '
r = requests.get(url)
soup = b(r.text, 'html.parser')
# находим все блоки с информацией о турнирах
tournament_blocks = soup.find_all('div', {'class': 'category-container'})
# проходимся по каждому блоку
for block in tournament_blocks:
# находим имя турнира
tournament_name = block.find('div', {'class': 'category-label'}).text
# находим категорию турнира
tournament_category = block.find('div', {'class': 'category-label__subtext'}).text
# находим тип игры (одиночный или парный разряд)
tournament_type = block.find('div', {'class': 'category-item__name'}).text
# находим этап турнира
tournament_stage = block.find('div', {'class': 'category-item__subtext'}).text
# выводим информацию об этом турнире
print(f"{tournament_category}. {tournament_name}. {tournament_type}. {tournament_stage}")
Не знаю на сколько сложно для профи, ставлю среднюю сложность.... В общем не парсит список и всё, просто ступор....
Очень сложно было найти теги на странице нужные, с горем пополам справился и тут ошибка снова эта же, но если ранее её удалось устранить, сейчас кажется невозможным.
Traceback (most recent call last):
File "C:\Users\rekla\OneDrive\Рабочий стол\Maraphon\Salieri_Maraphon_bot\main.py", line 21, in <module>
tournament_name = block.find('div', {'class': 'category-label'}).text
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'text'
Process finished with exit code 1