@blauss

Можно-ли как-нибудь так сделать?

Так как при получении от пользователя ссылки с пк и мобильных устройств разные(отличаются сплитом на айди одним слешем) то есть:
с телефона ссылка такая: https://www.amazon.com/dp/B092YHJLS6/ref=cm_sw_r_a...
с компа ссылка такая: https://www.amazon.com/Acer-Predator-PH315-54-760S...
они отличаются тем что айди с телефона в середине после 4 слеша(B092YHJLS6) а с компа после 5го слеша (B092YHJLS6)
как сделать так,чтобы и при ссылке с телефона и при ссылки с пк бот определял product_id правильно
Вот кусок кода, где сплит только на 4, а мне нужно ещё сделать так чтобы {product_id} видел айди если и айди будет после 5го слеша
Можно-ли так сделать?
product_id = message.text.split('/')[4]
answer = requests.get(f'API{product_id}')
  • Вопрос задан
  • 102 просмотра
Пригласить эксперта
Ответы на вопрос 1
SoreMix
@SoreMix Куратор тега Python
yellow
Ну визуально же видно разницу, значит можно и программе эту разницу показать
Если в первом варианте всегда есть /dp/ после домена, то можно проверять его наличие:
if 'amazon.com/dp/' in url:
    id_ = text.split('/')[4]
else:
    id_ = text.split('/')[-1]


Ну или допустим по длине. В первом случае сплитов будет меньше (если get параметры убрать и трейлинг слеш). И там уже выбирать нужный индекс. Можно просто проверять каждый элемент на то, что он написан аперкейсом, но это ненадежный вариант
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы