Ну визуально же видно разницу, значит можно и программе эту разницу показать
Если в первом варианте всегда есть /dp/ после домена, то можно проверять его наличие:
if 'amazon.com/dp/' in url:
id_ = text.split('/')[4]
else:
id_ = text.split('/')[-1]
Ну или допустим по длине. В первом случае сплитов будет меньше (если get параметры убрать и трейлинг слеш). И там уже выбирать нужный индекс. Можно просто проверять каждый элемент на то, что он написан аперкейсом, но это ненадежный вариант