Как было предложено @SD и @xeon zolt, проблема, похоже, в том, что контент, который вы ищете, генерируется скриптами. Чтобы Beautiful Soup проанализировал это, мы должны загрузить веб-страницу с помощью браузера, а затем передать источник страницы в Beautiful Soup.
Из вашего комментария я предполагаю, что вы уже настроили Selenium. Вы можете загрузить страницу в Selenium, а затем передать источник страницы красивому супу как таковому:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
driver = webdriver.Firefox()
driver.get("https://ca.finance.yahoo.com/quote/AMZN/profile?p=AMZN")
wait = WebDriverWait(driver, 5)
page_source = driver.page_source
driver.close()
soup = BeautifulSoup(page_source, 'html.parser')
Кроме того, безголовый режим просто означает, что видимые элементы пользовательского интерфейса (например, открытие браузера, затем закрытие) не видны при запуске скрипта. Вы можете использовать безголовый режим, изменив код, включив в него следующее:
from selenium.webdriver.firefox.options import Options
options = Options()
options.headless = True
driver = webdriver.Firefox(options=options)
Чтобы ответить на ваш последний вопрос, перед использованием нового парсера вы должны его установить. Например, если вы хотите использовать парсер l xml, вы должны сначала запустить в командной строке:
$ pip install lxml
Надеюсь, это поможет!