简体   繁体   English

需要帮助发送数据作为'POST'请求

[英]Need Help Sending Data As 'POST' Request

I have a script which finds a specific link with a product page on a website and I want to be able to check out. 我有一个脚本,可以在网站上找到与产品页面的特定链接,我希望能够查看。 Everything works until I have my POST request with the data (itemId, quantity, sku). 一切正常,直到我收到带有数据的POST请求(itemId,quantity,sku)。

I'm not entirely sure what I'm doing wrong here so I was hoping someone could help. 我不完全确定我在这里做错了所以我希望有人可以提供帮助。

Code: 码:

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)


Item I'm using for a test checkout: https://www.icantdecideyet.com/join/preorderbemyenemy-flag-printed-hoodie 我用于测试结帐的项目: https//www.icantdecideyet.com/join/preorderbemyenemy-flag-printed-hoodie

Output: http://prntscr.com/ozuto0 输出: http//prntscr.com/ozuto0

instead of 代替

checkout_website = requests.post(target_site + '/checkout', data=data)

try 尝试

checkout_website = requests.post(target_site + '/checkout', data=json.dumps(data))
print(str(checkout_website.status_code))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM