亚马逊会员链接生成器 python 脚本崩溃?



我真的很想知道为什么有时我的python脚本崩溃。

def returnAmazonLink(link):
if 'amazon.de' in link:
art, tracking_id, endung = 'amazon-ref.de', 'myID', '.de'
elif 'amazon.co.uk' in link:
art, tracking_id, endung = 'amazon-ref.co.uk', 'myID', '.co.uk'
elif 'amazon.es' in link:
art, tracking_id, endung = 'amazon-ref.es', 'myID', '.es'
elif 'amazon.fr' in link:
art, tracking_id, endung = 'amazon-ref.fr', 'myID', '.fr'
elif 'amazon.it' in link:
art, tracking_id, endung = 'amazon-ref.it', 'myID', '.it'
else:
art = 'amazon-ERROR'
offer_link = link
return offer_link, art
try:
split_a = link.split('/dp/')
asin = split_a[1][0:10]
offer_link = 'https://www.amazon'+ endung +'/dp/' + asin + '/?tag=' + tracking_id
except:
try:
split_b = link.split('/product/')
asin = split_b[1][0:10]
offer_link = 'https://www.amazon'+ endung+'/gp/product/' + asin + '/?tag=' + tracking_id
except:
split_c = link.split('/offer-listing/')
asin = split_c[1][0:10]
offer_link = 'https://www.amazon'+ endung +'/gp/offer-listing/' + asin + '/?tag=' + tracking_id
return offer_link, art

我希望在调用像 returnAmazonLink[0] 这样的方法时获得一个亚马逊会员网址

示例输入可以是:https://www.amazon.de/Marshall-Tufton-Tragbarer-Lautsprecher-Schwarz/dp/B07PZCRG6X?pf_rd_p=fd924cef-3db6-4a05-a84c-ae526862ddd8&pd_rd_wg=2ga3n&pf_rd_r=T28M0D83M3NG8JJVX04K&ref_=pd_gw_cr_simh&pd_rd_w=NmDeI&pd_rd_r=3974ee63-3d1d-4b9e-b536-b5bd73e18b3f

它只是有时崩溃...并非一直如此。 我认为问题出在尝试捕获上,因为这在发生的错误消息中也有说明。

但它向我显示了您在图像上看到的错误。在此处输入图像描述

我真的希望你们能帮助我! 多谢

我认为写一个exception base code是一件很痛苦的事情

您的输入可能不包含"/dp/"或"/product/"或"/offer-listing/"中的任何内容 这就出了问题

我会尝试这样做:

if '/dp/' in link:
split_a = link.split('/dp/')
asin = split_a[1][0:10]
offer_link = 'https://www.amazon'+ endung +'/dp/' + asin + '/?tag=' + tracking_id
elif '/product/' in link:
split_b = link.split('/product/')
asin = split_b[1][0:10]
offer_link = 'https://www.amazon'+ endung+'/gp/product/' + asin + '/?tag=' + tracking_id
elif '/offer-listing/' in link:
split_c = link.split('/offer-listing/')
asin = split_c[1][0:10]
offer_link = 'https://www.amazon'+ endung +'/gp/offer-listing/' + asin + '/?tag=' + tracking_id
else:
print('There was an error! check this link:')
print(link)
art = 'amazon-ERROR'
offer_link = link

最新更新