Wie poste ich mit Python Mechanize direkt an eine bestimmte URL?Python

Python-Programme
Guest
 Wie poste ich mit Python Mechanize direkt an eine bestimmte URL?

Post by Guest »

Mit dem Mechanisierungsmodul von Perl scheint fast alles möglich zu sein. Aber ich verwende kein Perl, leider habe ich immer noch erwartet, dass ich mit Python das tun kann, was nötig ist. Die Anmeldeseite, die ich automatisieren muss, ist nicht direkt erreichbar. Die sichtbare URL im Browser enthält nicht das Webformular (und auch nichts, in Web 2.0-Manier handelt es sich nur um eine Reihe von XHR-Anfragen und integriertem Javascript), aber es gibt eine URL, an die ich mit Curl direkt posten kann. Die Dokumentation legt nahe, dass browser.open(url, data=whatever) eine intelligente Entscheidung treffen könnte, aber es scheint, dass es immer noch die GET-http-Methode verwendet. Oder es verwendet möglicherweise POST, führt aber application/x-www-form-urlencoded anstelle von json aus.
Der fragliche Code ist ziemlich einfach:

Code: Select all

r = br.open('https://major-retailer.com/api/client/experience/v1/load', data=json.dumps(j))
Dies führt lediglich dazu, dass ich eine generische Antwort auf eine fehlerhafte Anfrage erhalte:

Code: Select all

mechanize._response.get_seek_wrapper_class..httperror_seek_wrapper: HTTP Error 400: Bad Request
Ich kann dies mit Anfragen zum Laufen bringen, aber nur für diesen ersten Beitrag, danach wird es etwas zu aufwändig, Cookies und Referrer usw. zu verwalten. Das wenige, was ich über Python Mechanize finden kann, deutet darauf hin, dass es für anspruchsvolle Aufgaben möglicherweise nicht ausreicht, in der Hoffnung, dass dies nicht der Fall ist.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post