Использование регулярного выражения:
import re
s = '<a class="a-link-normal" href="https://www.amazon.it/Philips-GC8735-PerfectCare-Generatore-Vapore/dp/B01J5FGW66/ref=gbph_img_s-3_7347_c3de3e94?smid=A11IL2PNWYJU7H&pf_rd_p=82ae57d3-a26a-4d56-b221-3155eb797347&pf_rd_s=slot-3&pf_rd_t=701&pf_rd_i=gb_main&pf_rd_m=A11IL2PNWYJU7H&pf_rd_r=MDQJBKEMGBX38XMPSHXB" id="dealImage"></a>'
print(re.search(r"dp\/([A-Za-z0-9]{10})\/", s)[1])
Выход: B01J5FGW66
Пояснение:
начинаются с "dp/"
:
dp\/
захват группы, разделенной () соответствием 10 (через {10}) маленьких букв (a-z), заглавных букв (A-Z) и чисел (0-9):
([A-Za-z0-9]{10})
конец в "/"
:
\/
используя re.search
, мы можем найти это выражение в вашей строке s
и получить доступ к результатам 1-й группы захвата с помощью [1]
.
Обратите внимание , что вы, возможно, захотите добавить дополнительный код, если совпадение не найдено:
m = re.search(r"dp\/([A-Za-z0-9]{10})\/", s)
if m is not None:
print(m[1])
else:
# if nothing is found, search return None
print("No match")