Проблема во внимательности:
div с атрибутом class="vehicle-card-vertical-body car-info-body" на одном уровне содержит два div'а:
- div с атрибутом class="main-info"
- div с атрибутом class="car-price-info"
в переменную 'infos" изначально кладёте не те данные, в которых не возможно найти цену.
Счётчик страниц нужно увеличивать в цикле while после выхода из цикла for, иначе вы скачиваете сначала первую страницу, потом 21ую, а 41ой уже не существует (в точных цифрах могу ошибаться)
Настоятельно рекомендую поставить задержку на скачивание каждой последующей страницы:
from time import sleep
и в начале цикла while:
sleep(1)
По JSON нужно смотреть, что за ошибка.
Если:
...
TypeError: Object of type Tag is not JSON serializable
Значит Вы скорее всего пытаетесь сохранить в JSON какой-то объект bs4, который JSON не поддерживает.
Надо предварительно конвертировать его в поддерживаемый тип данных.