Я пытаюсь получить некоторые данные с сайта киберспортивной статистики (vlr.gg). Я решил использовать BeatifulSoup, но сейчас столкнулся с некоторыми проблемами при очистке данных из тех же имен классов.
box5=soup.find_all("div",class_="match-header-vs-score")
for p in box5:
matchtdetails=p.find("div",class_="match-header-vs-note").get_text(strip=True)
print(" In: ",matchtdetails)
box6=soup.find_all("div",class_="match-header-vs-note")
for q in box6:
if q.find("div",class_="match-header-vs-note"):
matchdetails1=q.find("div",class_="match-header-vs-note").get_text(strip=True)
print(matchdetails1)
Это конкретный блок HTML-кода, с которым я работаю:
18h 24m
–
Bo3
Я новичок в очистке HTML, и, насколько я понял, для получения конкретных данных я должен указать «поле» на класс, немедленно обертывая классы нужных мне данных, а затем перебрать классы в цикле и «найти» конкретный класс, из которого мне нужны данные.
Box5 используется для получения статистики оставшегося времени, box6 — для какого это формата (bo1 ,bo3 и т.д.)
Однако в этом коде box6 мне ничего не возвращает.
Что касается box5 , изначально я пытался использовать find_all() для «match-header-vs-note», поскольку это был непосредственный класс, который обертывал «предстоящий мод match-header-vs-note», но он продолжал выдавать мне Ошибка атрибута NoneType. Я думал, что проблема в пробеле, обозначающем несколько классов внутри, но нет, аналогичные классы с пробелами в имени работали и в других местах. После того, как я изменил код для box5 на код, который я привел выше, он работает.
Изначально я использовал find_all() внутри цикла и сохранял данные в списке, но, как я узнал, это выдает следующую ошибку:
AttributeError: 'NavigableString' object has no attribute 'find_all'. Did you mean: '_find_all'?
Подробнее здесь: https://stackoverflow.com/questions/784 ... same-class