Probleme beim requests.post

Django, Flask, Bottle, WSGI, CGI…
Antworten
Luca_31
User
Beiträge: 2
Registriert: Mittwoch 26. Januar 2022, 13:29

Hallo liebe Python-Community,

vielen Dank schon mal für eure Hilfe!

Ich bin jetzt schon seit längerem dabei, Python zu lernen und habe mir auch bereits ein Paar Bücher zu dem Thema durchgelesen. Ich selber mache eine Ausbildung zum Anwendungsentwickler und würde gerne mich ein wenig mehr mit Web-Scraping etc auseinandersetzen.

Ich möchte mir gerne einen Bot für Otto bauen, der wenn ich ihm einen Produkt-ID gebe, diesen in den Warenkorb legt.

Nun gehe ich so vor, dass ich als erstes diesen Vorgang selber durchgehe und dann im Browser Network mir genauer anschaue, was genau passiert ist und was der Server gemacht hat.

Nun habe ich auch die Parameter gefunden, welche dem Server zugeschickt werden.

So sieht das ganze dann aus:

Bild

Bild

So sehen die Paramter aus. Dann habe ich den Code geschrieben und bekomme aber als Status_code "400" zurück und leider verstehe ich nicht wieso. Kann mir da bitte jemand helfen, so langsam bin ich echt am verzweifeln ^^

Mein Code:

Code: Alles auswählen

import requests
from bs4 import BeautifulSoup
import time

s = requests.Session()

payload = {"variationId":"1149610163",
           "articleNumber":"35657750",
           "variationId": "1149610163",
           "quantity":"1",
           "itemOrigin":"ads",
           }
header = {"content-type": "application/json"}
response = s.post("https://www.otto.de/order/addToBasket", json=payload, headers=header)
Ich hoffe jemand von euch kann mir helfen, Dankeschön!
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

Bitte Text als Text posten, nicht als Bilder!

Du hast ja den `payload` nach Deinem eigenen Ermessen eingekürzt. Außerdem ignorierst Du Cookies, die vielleicht auch mit gesendet werden.
Luca_31
User
Beiträge: 2
Registriert: Mittwoch 26. Januar 2022, 13:29

Sirius3 hat geschrieben: Mittwoch 26. Januar 2022, 14:04 Bitte Text als Text posten, nicht als Bilder!

Du hast ja den `payload` nach Deinem eigenen Ermessen eingekürzt. Außerdem ignorierst Du Cookies, die vielleicht auch mit gesendet werden.
Ich habe ein Bild von dem gemacht, was ich zeigen wollte. Vielleicht erkennt er die Seite auch nicht, wo ich es hochgeladen habe.

Eingekürzt habe ich es, weil ich etwas ausprobiert habe, ob dann immer noch der Fehler kommt. Hast du sonst noch einen Lösungsvorschlag?
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

Du mußt als erstes exakt das selbe machen, wie der Browser. Also insbesondere die Index-Seite laden, damit eventuelle Cookies richtig gesetzt werden, und die Post-Requests exakt gleich absetzen. Eventuell noch HTTP-Header anpassen.
Antworten