我正在使用 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/