Я изо всех сил пытаюсь понять, почему BeautifulSoup не соответствует некоторым именам классов, которые существуют в источнике HTML.
Исходный HTML-код содержит следующие строки для сопоставления:
<span class="Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)" data-reactid="34">1,148.52</span>
<div class="Py(16px)">...
<div class="Mt(15px)" data-reactid="4">...
Ниже приведен мой код:
# ref: https://www.crummy.com/software/BeautifulSoup/bs4/doc/#searching-by-css-class
import requests
from bs4 import BeautifulSoup
page = requests.get("https://finance.yahoo.com/quote/GOOGL/")
soup = BeautifulSoup(page.content, 'html.parser')
# the folowing matches ok
print(soup.find('div', class_="Mt(15px)"))
# yet, the following lines fail to match:
print(soup.find("span", class_="Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)"))
print(soup.find('span', {"class": "Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)"}))
print(soup.find('div', class_="Py(16px)"))
Я подумал, что имена классов не являютсяработая с BeautifulSoup, поэтому я попытался использовать page.content.replace («имя старого класса», «новый»), чтобы сократить и упростить имена классов для функции BeautifulSoup, но это не сработало.