Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 需要帮助解决自动化脚本上的400错误请求错误吗_Python_Python Requests - Fatal编程技术网

Python 需要帮助解决自动化脚本上的400错误请求错误吗

Python 需要帮助解决自动化脚本上的400错误请求错误吗,python,python-requests,Python,Python Requests,我需要一些包含此脚本的帮助。我想做一个自动化软件。我不知道为什么我会收到错误的请求。除了最后的要求,一切都很好 from bs4 import BeautifulSoup from requests import Session from twocaptcha import TwoCaptcha import requests import time import json import random import threading import sys import os session

我需要一些包含此脚本的帮助。我想做一个自动化软件。我不知道为什么我会收到错误的请求。除了最后的要求,一切都很好

from bs4 import BeautifulSoup
from requests import Session
from twocaptcha import TwoCaptcha
import requests
import time
import json
import random
import threading
import sys
import os

session = requests.session()

def productPage():

    headers = {
        'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
        'accept-encoding': 'gzip, deflate, br',
        'accept-language': 'de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7',
        'cache-control': 'max-age=0',
        'referer': 'https://shop.jaegermeister.de/shotmachine',
        'sec-fetch-dest': 'document',
        'sec-fetch-mode': 'navigate',
        'sec-fetch-site': 'same-origin',
        'sec-fetch-user': '?1',
        'upgrade-insecure-requests': '1',
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36',
    }
    
    response = session.get('https://shop.jaegermeister.de/account/index/sTarget/shotmachine', headers=headers)           

    while True:
        if response.status_code == 200:
            print("Successfully got product page")
            time.sleep(5)
            submitData()
            break
        else:
            print("Failed getting product page")
            time.sleep(5)

def submitData():
    # get captcha token
    sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))

    api_key = os.getenv('APIKEY_2CAPTCHA', '78341488dfb7f65521fc8cb5f8602483')

    solver = TwoCaptcha(api_key)
    
    result = None
    while True:
        try:
            print("getting captcha token")
            result = solver.recaptcha(
                sitekey='6Lc3otEZAAAAAI8QATz6kZ8vnJJ6m5m-6-ArCWnh',
                url='https://shop.jaegermeister.de/register/saveRegister/sTarget/shotmachine/sTargetAction/index')

        except Exception as e:
            sys.exit(e)

        if result:
            print("Successfully got captcha token")
            time.sleep(5)

        else:
            print("Error while getting captcha")

        headers = {
            'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
            'accept-encoding': 'gzip, deflate, br',
            'accept-language': 'de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7',
            'cache-control': 'max-age=0',
            'dnt': '1',
            'content-type': 'application/x-www-form-urlencoded',
            'origin': 'https://shop.jaegermeister.de',
            'referer': 'https://shop.jaegermeister.de/register/saveRegister/sTarget/shotmachine/sTargetAction/index',
            'sec-fetch-dest': 'document',
            'sec-fetch-mode': 'navigate',
            'sec-fetch-site': 'same-origin',
            'sec-fetch-user': '?1',
            'upgrade-insecure-requests': '1',
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36',
            }

        csrf =''
        while True:
            try:
                resp = session.get("https://shop.jaegermeister.de/csrftoken", headers=headers)
                if resp.status_code == 200:
                    csrf = resp.headers['X-Csrf-Token']
                    time.sleep(5)
                    break
            except Exception as e:
                print(e)
                time.sleep(2)
        
        submiturl = 'https://shop.jaegermeister.de/register/saveRegister/sTarget/shotmachine/sTargetAction/index'


        payload = {
            'recaptcha_token': result['code'],
            'register[personal][customer_type]': 'private',
            'register[personal][salutation]': 'mr',
            'register[personal][firstname]': 'jens',
            'register[personal][lastname]': 'Berger',
            'register[personal][birthday][day]': '5',
            'register[personal][birthday][month]': '4',
            'register[personal][birthday][year]': '2002',
            'register[personal][accountmode]': '0',
            'register[personal][email]': 'berger02@imperialkickz.de',
            'register[personal][password]': 'Password123',
            'register[billing][street]': 'Bergerstr 9',
            'register[billing][zipcode]': '71686',
            'register[billing][city]': 'Remseck',
            'register[billing][country]': '2',
            'register[shipping][company]': '',
            'register[shipping][firstname]': '',
            'register[shipping][lastname]': '',
            'register[shipping][street]': '',
            'register[shipping][zipcode]': '',
            'register[shipping][city]': '',
            'register[shipping][country]': '2',
            '__csrf_token': csrf,
        }

        response = session.post(submiturl, headers=headers, data=payload, allow_redirects=False)

        while True:

            if response.status_code == 302:
                print("Generating Account")
                
                
            else:
                print("Failed generating Account(" + str(response.status_code) + ")")
                break

productPage()
我无法生成一个帐户在这个网站上造成的400个错误的请求。任何人都可以解释我如何解决这个问题,我做错了什么