MechanicalSoup亚马逊登录Cookie问题

时间:2017-10-01 13:12:53

标签: python-3.x amazon-web-services cookies mechanicalsoup

我目前正在尝试使用MechanicalSoup登录亚马逊。 我能够打开登录页面,但它告诉我需要启用Cookie才能继续。但是,由于MechanicalSoup文档声明它会自动存储和发送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

2 个答案:

答案 0 :(得分:0)

根据域名存储Cookie。除非域名相同,否则一个应用程序(网站)无法为其他应用程序(网站)保存cookie。

在您的示例中,您的应用程序正在为Amazon的域启动Web浏览器。您无法为亚马逊域保存Cookie。

解决方案:在浏览器中启用Cookie。这是亚马逊的要求。

答案 1 :(得分: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)

似乎亚马逊尽力阻止僵尸程序,如果是这样你就不应该尝试编写僵尸程序(事实上你必须伪造用户代理来访问该网站这是一个很好的指标,你正在做出错了。)

解决方案:不要为亚马逊写机器人: - (。