无法使用Python登录亚马逊

tjm*_*tjm 3 python cookies kindle

我正在使用 Python 3 编写一个脚本来登录 Amazon 以获取我的 Kindle 亮点。它基于这篇文章: https: //blog.jverkamp.com/2015/07/02/scraping-kindle-highlights/

我无法成功登录,而是收到一条消息,提示启用 cookie 才能继续:

<RequestsCookieJar[<Cookie ubid-main=189-4768762-8531647 for .amazon.com/>]>
Failed to login: 

Please Enable Cookies to Continue

To continue shopping at Amazon.com, please enable cookies in your Web browser.
Learn more about cookies and how to enable them.
Run Code Online (Sandbox Code Playgroud)

我已经包含了处理 cookie 的请求会话,但它似乎不起作用。

这是我用来尝试执行此操作的代码:

import bs4, requests

session = requests.Session()
session.headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36'
}

# Log in to Amazon, we have to get the real login page to bypass CSRF
print('Logging in...')
response = session.get('https://kindle.amazon.com/login')

soup = bs4.BeautifulSoup(response.text, "html.parser")

signin_data = {}
signin_form = soup.find('form', {'name': 'signIn'})
for field in signin_form.find_all('input'):
    try:
        signin_data[field['name']] = field['value']
    except:
        pass

signin_data[u'ap_email'] = 'myemail'
signin_data[u'ap_password'] = 'mypassword'


response = session.post('https://www.amazon.com/ap/signin', data = signin_data)

soup = bs4.BeautifulSoup(response.text, "html.parser")

warning = soup.find('div', {'id': 'message_warning'})
if warning:
    print('Failed to login: {0}'.format(warning.text))
Run Code Online (Sandbox Code Playgroud)

我在使用会话时遗漏了什么吗?

Jay*_*osk 5

2020 年 - 此代码将不再有效。亚马逊已将 JavaScript 添加到其登录页面,如果不执行,该序列将失败。检索到的页面将声明 cookie 未启用,即使它们已启用并且可以工作。将用户名和密码一起发送会产生包含验证码的验证页面响应。在第二次交换中发送用户名然后发送密码会导致回复 \xe2\x80\x9csomething goneError\xe2\x80\x9d 并将再次要求用户名/密码。亚马逊认识到 JavaScript 未执行。

\n