python - 无法使用 Python 登录亚马逊

标签 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.

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

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

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

我在使用 session 时是否遗漏了什么?

最佳答案

2020 - 此代码将不再有效。 Amazon 已将 JavaScript 添加到其登录页面,如果不执行,则会导致此序列失败。检索到的页面将声明 cookie 未启用,即使它们是有效的。同时发送用户名和密码会产生包含验证码的验证页面响应。在第二次交换中发送用户名然后发送密码会导致回复“出了点问题”,并且会再次要求输入用户名/密码。亚马逊识别出 JavaScript 未被执行。

关于python - 无法使用 Python 登录亚马逊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36488023/

相关文章:

python - 如何创建一个可以直接从shell执行的程序(谐波和)?

python - 计算csv文件中出现的随机数

javascript - 使用 jQuery 设置 cookie

android - 如何从 Android 打开 kindle 电子书?

python - 如何获取gtk.ListStore的项目数/行数/长度/计数

python - Mongoengine、flask-MongoEngine 和 Django-MongoEngine 之间的区别?

cookies - Jersey:我可以在 ContainerResponseFilter 中添加 cookie 吗?

PHP:如何在cookie中存储 session

amazon - 如何对齐 Kindle (KF8) 的表格数据

python - 是否可以使用 python 创建 .mobi 文件?如果是这样,如何?