python - 使用 BeautifulSoup 登录亚马逊会导致“检测到异常登录尝试”
问题描述
我有这个代码:
'''load packages'''
import requests
from bs4 import BeautifulSoup
'''define URL where login form is located'''
site = 'https://www.amazon.com/gp/sign-in.html'
'''initiate session'''
session = requests.Session()
'''define session headers'''
session.headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'en-US,en;q=0.5',
'Referer': site
}
'''get login page'''
resp = session.get(site)
html = resp.text
'''get BeautifulSoup object of the html of the login page'''
soup = BeautifulSoup(html, 'lxml')
'''scrape login page to get all the needed inputs required for login'''
data = {}
form = soup.find('form', {'name': 'signIn'})
for field in form.find_all('input'):
try:
data[field['name']] = field['value']
except:
pass
'''add username and password to the data for post request'''
data[u'email'] = "test@gmail.com"
data[u'password'] = "albi"
'''submit post request with username / password and other needed info'''
post_resp = session.post('https://www.amazon.com/ap/signin', data=data)
post_soup = BeautifulSoup(post_resp.content, 'lxml')
with open('file2.html', "w", encoding="utf-8") as f:
f.write(post_soup.decode("utf-8"))
f.close()
if post_soup.find_all('title')[0].text == 'Your Account':
print('Login Successfull')
else:
print('Login Failed')
我必须在手机上批准连接...我收到一条短信“来自亚马逊:检测到来自 XX、XX 的异常登录尝试。在此处查看详细信息:...”
我检查了两次 ua,这对于获取价格等基本请求是可以的。我应该去哪里看看?
解决方案
我今晚经历了这个和随后的电子邮件,无法登录我的帐户。我正在使用我经常使用的设备和位置登录我的帐户,并且没有信心按照电子邮件说明进行操作?!
推荐阅读
- javascript - 在 Node.js 中执行 PowerShell 脚本
- python - GTK Python 更新树形视图
- c# - 是否可以创建始终设置为 true 的不可见 xaml 命令?
- javascript - 如何从浏览器检查 .NET 版本
- javascript - 陷入下载循环
- php - 从数组中将多个标签复选框设置为“已选择”
- c# - 刚体操作在 Y 轴上不起作用?(Unity3D 2020.1)
- python - 如何使用多处理库来解决这个问题?我也想知道这对我的问题是否可行
- python - 将参数格式化为字符串
- wordpress - 将结帐页面中的自定义字段与运输字段合并