2017-10-01 4 views
0

Ich versuche gerade, mich mit MechanicalSoup bei Amazon anzumelden. Ich kann die Login-Seite öffnen, aber es sagt mir, ich muss Cookies aktivieren, um fortzufahren. Da die MechanicalSoup-Dokumentation jedoch angibt, dass Cookies automatisch gespeichert und gesendet werden, weiß ich nicht, wo das Problem liegt.MechanicalSoup Amazon Login Cookie Probleme

Dies ist mein aktueller Code:

import mechanicalsoup 

browser = mechanicalsoup.StatefulBrowser(
    soup_config={'features': 'lxml'} 
) 

browser.session.headers.update({'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.2228.0 Safari/537.36'}) 
browser.open("https://www.amazon.de/gp/navigation/redirector.html/ref=sign-in-redirect?ie=UTF8&associationHandle=deflex&currentPageURL=https%3A%2F%2Fwww.amazon.de%2F%3Fref_%3Dnav_custrec_signin&pageType=Gateway&switchAccount=&yshURL=https%3A%2F%2Fwww.amazon.de%2Fgp%2Fyourstore%2Fhome%3Fie%3DUTF8%26ref_%3Dnav_custrec_signin") 

browser.launch_browser() 

Amazon Output

Antwort

0

Cookies werden gespeichert, basierend auf Domain-Namen. Eine Anwendung (Website) kann keine Cookies für eine andere Anwendung (Website) speichern, es sei denn, der Domänenname ist derselbe.

In Ihrem Beispiel startet Ihre Anwendung einen Webbrowser für die Amazon-Domäne. Sie können keine Cookies für Amazons Domain speichern.

Lösung: Aktivieren Sie Cookies im Browser. Dies ist die Anforderung von Amazon.

+0

Ich glaube ich nicht mein Problem klar genug machen Es scheint ein prblem spezifisch für Amazon zu sein, die ich anmelden kann beispielsweise ohne Probleme GitHub... Cookies sind definitiv aktiviert, aber aus irgendeinem Grund blockiert Amazon immer noch Anmeldeversuche von meiner Anwendung – SirWoosh

0

habe ich versucht, eine Variante des Codes und es funktioniert auch nicht:

>>> browser = mechanicalsoup.StatefulBrowser(user_agent='Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) C 
hrome/61.0.2228.0 Safari/537.36')                       
>>> browser.open("https://www.amazon.com/") 
<Response [200]> 
>>> browser.follow_link("^/gp/navigation") 
<Response [404]> 

(Es macht den richtigen Link zu finden, aber bekommt einen 404, wenn es folgende)

Es scheint Amazon tut Es ist am besten, Bots zu blockieren, und wenn das der Fall ist, sollten Sie nicht versuchen, einen Bot zu schreiben (die Tatsache, dass Sie einen User-Agent fälschen müssen, um auf die Site zuzugreifen, ist ein guter Indikator, dass Sie etwas falsch machen).

Lösung: nicht schreiben Bots für amazon :-(