Скорее всего, вы столкнулись с динамическим сайтом.
Отдельные части HTML-страницы могут формироваться на стороне клиента (браузера) с использованием скриптов на языке JavaScript. Такие страницы и сайты называются
динамическими. На динамическом сайте после загрузки страницы браузером содержимое в ней может изменяться посредством
AJAX-запросов и изменением дерева HTML средствами JavaScript (см.
DOM) — то есть на таких сайтах содержимое частично или полностью
генерируется на стороне клиента.
Чтобы
скрапить динамические страницы (что вы, вероятно, ошибочно называете парсингом) с использованием Python, вам потребуется полноценный браузер с JavaScript-движком, управляемый из вашей программы. В Python для автоматизации использования браузеров можно применить один из этих инструментов:
Selenium,
Pypeteer или
Playwright.
Очень часто можно применить другой подход, не прибегая к использованию браузера с JavaScript-движком. Заключается он в том, чтобы, используя вкладку "Network" в DevTools (инструменты разработчика, открываются по нажатию F12), найти нужные AJAX-запросы, которые генерируются странцей, и воспроизвести их в вашем Python-коде, и таким образом получить необходимые данные с сайта, вообще не прибегая к разбору HTML. Нередко в качестве формата сериализации AJAX-запросов используется JSON, с ним не составит труда работать из Python.