Красивый суп не может найти класс, который существует на веб-странице - PullRequest
0 голосов
/ 29 февраля 2020

Я пытаюсь очистить https://www.espn.com/nba/scoreboard Там есть объект типа даты, который содержит ссылки на ящики с результатами ранее сыгранных игр.

Я пытался:

divs = soup.find('div',class_='datepicker datepicker-dropdown datepicker-orient-left datepicker-orient-top')

print(divs)

: None

Другие классы могут быть найдены, но по какой-то причине этот класс не может быть найден. Я думаю, что это как-то связано с тем, что этот класс связан с календарем, который появляется на веб-странице (без изменения URL).

Ответы [ 2 ]

1 голос
/ 29 февраля 2020

Возможно, что некоторая часть HTML будет добавлена. js script динамически после загрузки страницы.

Если это так, вы не будете в состоянии загрузить это, используя суп ...

0 голосов
/ 29 февраля 2020

Это похоже на работу:

import bs4

html = """<div class="datepicker datepicker-dropdown datepicker-orient-left datepicker-orient-top" style="top: 35px; left: 0px; display: block;">"""

soup = bs4.BeautifulSoup(html, "html.parser")

class_ = "datepicker datepicker-dropdown datepicker-orient-left datepicker-orient-top".split(" ")
divs = [div for div in soup.find_all("div") if all(x in div.attrs["class"] for x in class_)]

print(divs)

Вывод:

[<div class="datepicker datepicker-dropdown datepicker-orient-left datepicker-orient-top" style="top: 35px; left: 0px; display: block;"></div>]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...