Python请求:无法在iFram中处理请求

2024-06-16 11:01:16 发布

您现在位置:Python中文网/ 问答频道 /正文

在我放弃并选择Selenium route之前,我试图使这个页面自动化(yeezysupply.com/products/mens-crepe boot oil)通过Python请求直到签出,但在签出页面被卡在信用表上,它的请求被加载到iFrame中并提交到不同的url https://elb.deposit.shopifycs.com/sessions,在那里它开始给出500个内部服务器错误。以下是我未尝试的代码:

payment_method_url = r.url.split('?')
    payment_method_url = payment_method_url[0]

    BILLING_FIRST_NAME = 'Jon'
    BILLING_LAST_NAME = 'Norman'
    BILLING_ADDRESS_1 = 'G-309'
    BILLING_ADDRESS_2 = 'G-309'
    BILLING_CITY = 'Chicago'
    BILLING_COUNTRY = 'United States'
    BILLING_PROVINCE = 'Illinois'
    BILLING_ZIP = '60007'
    BILLING_PHONE = '149584848485'
    TOTAL_PRICE = 66500

    # For final Checkout
    s.options('https://elb.deposit.shopifycs.com/sessions', headers=headers)

    session_url = 'https://elb.deposit.shopifycs.com/sessions'
    session_data = '{"credit_card":{"number":"4242 4242 4242 4242","name":"Jon Norman","month":9,"year":2019,"verification_value":"123"}}'

    sleep(3)
    s.headers.update({
        'referer': 'https://checkout.shopifycs.com/number?identifier=eeb4fe88a0fd4063043eeb5730d460f4&location=https%3A%2F%2Fpurchase.yeezysupply.com%2F17655971%2Fcheckouts%2Feeb4fe88a0fd4063043eeb5730d460f4'})

    data = {
        'utf8': 'utf8',
        '_method': 'patch',
        'authenticity_token': authenticity_token,
        'previous_step': 'payment_method',
        'step': '',
        's': 'east-50fb8458975b56217d7317847efb9280',
        'checkout[payment_gateway]': '117647559',
        'checkout[credit_card][vault]': 'false',
        'checkout[payment_gateway]': '117647559',
        'checkout[different_billing_address]': 'true',
        'checkout[billing_address][first_name]': BILLING_FIRST_NAME,
        'checkout[billing_address][last_name]': BILLING_LAST_NAME,
        'checkout[billing_address][address1]': BILLING_ADDRESS_1,
        'checkout[billing_address][address2]': BILLING_ADDRESS_2,
        'checkout[billing_address][city]': BILLING_CITY,
        'checkout[billing_address][country]': BILLING_COUNTRY,
        'checkout[billing_address][province]': BILLING_PROVINCE,
        'checkout[billing_address][zip]': BILLING_ZIP,
        'checkout[billing_address][remember_me]': 'false',
        'checkout[billing_address][remember_me]': '0',
        'checkout[billing_address][remember_me_country_code]': '',
        'checkout[billing_address][remember_me_phone]': '',
        'checkout[billing_address][total_price]': TOTAL_PRICE,
        'complete': '1',
        'checkout[client_details][browser_width]': '1280',
        'checkout[client_details][browser_height]': '150',
        'checkout[client_details][javascript_enabled]': '1',
    }
    sleep(2)
    r = s.post(payment_method_url+'/processing', data=data, headers=headers)

    r = s.get(payment_method_url, headers=headers)
    print(r.text)

enter image description here


Tags: namehttpscomurldataaddresspaymentmethod