Я думаю, что причина, по которой вы не можете разобрать годы с красивым супом, заключается в том, что тег 'select', содержащий теги 'option' со всеми годами, еще не существует / скрыт в тот момент, когда красивый суп загружает страницу,Он добавляется в DOM, выполняя дополнительный JavaScript, который я предполагаю.Если вы посмотрите на DOM загруженной страницы с помощью инструментов разработчика вашего браузера, например, F12 для Mozilla, вы увидите, что тег, содержащий информацию, которую вы ищете: <select id="icm-years-select"">
.Если вы попытаетесь разобрать для этого тега объект, загруженный с помощью красивого супа, вы получите пустой список объектов тегов:
from bs4 import BeautifulSoup
from requests import get
response = get('https://www.wheelmax.com/')
yourSoup = BeautifulSoup(response.text, "lxml")
print(len(yourSoup.select('div #vehicle-search'))) // length = 1 -> visible
print()
print(len(yourSoup.select('#icm-years-select'))) // length = 0 -> not visible
Так что, если вы хотите получить годы, используя Python всеми средствами, ядумаю, вы можете попытаться нажать на соответствующий тег, а затем снова проанализировать, используя некоторую комбинацию запросов / красивый суп / или модуль селена, который потребует немного больше копания: -)
В противном случае, если вам просто нужно быстропроанализировано лет, используйте JavaScript:
countYears = document.getElementById('icm-years-select').length;
yearArray = [];
for (i = 0; i < countYears; i++) {yearArray.push(document.getElementById('icm-years-select')[i].value)};