2017-10-01 14 views
0

Je suis actuellement en train d'essayer de se connecter à Amazon avec MechanicalSoup. Je suis capable d'ouvrir la page de connexion, mais elle me dit que je dois activer les cookies pour continuer. Mais étant donné que la documentation de MechanicalSoup indique qu'elle stockera et enverra automatiquement des cookies, je ne sais pas où le problème pourrait être.MechanicalSoup Amazon Login problèmes de cookies

Ceci est mon code actuel:

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

Répondre

0

Les cookies sont stockés en fonction de nom de domaine. Une application (site Web) ne peut pas enregistrer les cookies pour une autre application (site Web) sauf si le nom de domaine est le même.

Dans votre exemple, votre application lance un navigateur Web pour le domaine Amazon. Vous ne pouvez pas enregistrer les cookies pour le domaine d'Amazon.

Solution: Activez les cookies dans le navigateur. C'est l'exigence d'Amazon.

+0

Je crois :-(pas écrire des bots pour amazon je ne faisais pas mon problème assez clair, il semble être un prblem spécifique à amazon je peux vous connecter à GitHub par exemple sans problème... , donc les cookies sont définitivement activés, mais pour une raison quelconque, amazon bloque toujours les tentatives de connexion de mon application – SirWoosh

0

J'ai essayé une variante de votre code et il ne fonctionne pas non plus:

>>> 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]> 

(il ne trouve le lien à droite, mais obtient une 404 quand le suivant)

Il semble Amazon ne Il est préférable de bloquer les bots, et si c'est le cas, vous ne devriez pas essayer d'écrire un bot (le fait que vous deviez simuler un user-agent pour accéder au site est un bon indicateur que vous faites quelque chose de mal).

Solution: ne