我有一个脚本,该脚本可以找到网站上产品页面的特定链接,我希望能够签出。一切正常,直到有数据(itemId,数量,sku)的POST请求为止。
我不确定自己在做什么错,所以我希望有人可以帮忙。
代码:
def checkout_item(item_url):
website = requests.get(item_url)
document = Soup(website.content, "html.parser")
print('Now in product page')
item_id = document.find('body').get('id').replace('item-', '')
item_sku = ''
product_variants_string = document.find('div', class_='product-variants').get('data-variants')
product_variants_json = json.loads(product_variants_string)
for json_element in product_variants_json:
attributes_json = json_element['attributes']
if attributes_json['Size'] is not f'{size_to_buy}':
continue
else:
item_sku = json_element['sku']
data = {
'additionalFields': 'null',
'itemId': f'{item_id}',
'quantity': '1',
'sku': f'{item_sku}'
}
print(data)
checkout_website = requests.post(target_site + '/checkout', data=data)
checkout_document = Soup(checkout_website.content, "html.parser")
if checkout_document is None:
print('checkout_document is null')
else:
print(checkout_document)
我用于测试结帐的项目:https://www.icantdecideyet.com/join/preorderbemyenemy-flag-printed-hoodie
答案 0 :(得分:1)
代替
checkout_website = requests.post(target_site + '/checkout', data=data)
尝试
checkout_website = requests.post(target_site + '/checkout', data=json.dumps(data))
print(str(checkout_website.status_code))