2017-10-01 53 views
0

現在MechanicalSoupでAmazonにログインしようとしています。 ログインページを開くことができますが、Cookieを有効にする必要があることがわかります。しかし、MechanicalSupドキュメンテーションでは、自動的にクッキーを保存して送信すると述べているため、問題がどこにあるのかが分かりません。MechanicalSoup AmazonログインCookieの問題

これは私の現在のコードです:

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

答えて

0

クッキーは、ドメイン名に基づいて保存されます。ドメイン名が同じでない限り、1つのアプリケーション(Webサイト)は別のアプリケーション(Webサイト)のCookieを保存できません。

例では、アプリケーションがAmazonのドメイン用のWebブラウザを起動しています。 AmazonのドメインのCookieを保存することはできません。

解決方法:ブラウザでCookieを有効にします。これはAmazonの要件です。

+0

私は十分に私の問題を明確にしていないと信じてアマゾンに固有prblemのようです、私は問題なく、たとえばgithubのにログインすることができます。 、Cookieは確実に有効になっていますが、何らかの理由でアマゾンは自分のアプリケーションからのログイン試行をブロックしています – SirWoosh

0

私はあなたのコードのバリエーションを試してみました、それはどちらか動作しません。

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

(これは、右のリンクを見つけませんが、それを以下の時に404を取得します)

Amazonがないようですボットをブロックするのに最適です。ボットを書くことを試みるべきではありません(サイトにアクセスするためにユーザーエージェントを偽装しなければならないという事実は、あなたが間違っていることを示す良い指標です)。

ソリューション:。:-(アマゾン用のボットを書いていない