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个错误的请求。任何人都可以解释我如何解决这个问题,我做错了什么