python - 从 Python 脚本登录 Magento 帐户
问题描述
我正在尝试使用 requests 模块从 Python 脚本登录 Magento 帐户,我制作的相关代码如下所示:
s = requests.session()
main_url = '<redacted.tld>/en/index.html'
html_data = s.get('https://'+main_url, headers=headers, timeout=(30, 30), verify=dst_verify_ssl)
web_user = 'test@test.com'
web_pass = '123test321'
form_key = soup.find('input', {'name':'form_key'})['value']
l_url = 'https://<redacted.tld>/'
l_route = 'en/customer/account/loginPost/'
login_payload = {
'form_key':form_key,
'login[username]':web_user,
'login[password]':web_pass
}
login_req = s.post(l_url + l_route, headers=headers, data=login_payload)
但这并没有让我登录,所以我想知道是否有人可以告诉我通过 Python 登录到 Magento 帐户需要什么?
谢谢。
解决方案
我在公共演示实例上试了一下,我可以在 Magento 2 仪表板上很好地看到数据:
import requests
from bs4 import BeautifulSoup
web_user = 'youremail@example.com'
web_pass = 'yourpassword'
s = requests.session()
main_url = 'https://magento2demo/'
html_data = s.get(main_url)
form_soup = BeautifulSoup(html_data.content, 'html.parser')
form_key = form_soup.find('input', {'name':'form_key'})['value']
login_route = 'https://magento2demo/customer/account/loginPost/'
login_payload = {
'form_key': form_key,
'login[username]': web_user,
'login[password]': web_pass
}
login_req = s.post(login_route, data=login_payload)
account_url = "https://magento2demo/customer/account/"
html_account = s.get(account_url)
account_soup = BeautifulSoup(html_account.content, 'html.parser')
info = account_soup.find('div', {'class':'box-information'}).find('div', {'class':'box-content'})
assert web_user in str(info)
"beautifulsoup4": { "version": "==4.9.3"
"requests": { "version": "==2.26.0"
POST 上的响应代码是什么?你的标题有什么特别之处吗?如果上述方法没有帮助,可能想要添加更多可重复的数据。
推荐阅读
- php - 表单发布后写入 SQL 和文件
- javascript - Kendo UI JQuery treeview 禁用内部拖放,但允许拖放到列表框
- java - 在文本文件中单独记录 Room sqlite 数据库操作
- postgresql - 限制 RDS ReadReplica (PostgreSQL) 中的表数
- python - 来自 s3 存储桶的 Django 图像导致 NoSuchBucket 错误
- bash - 为什么我使用脚本提交的标志会导致“找不到命令”错误
- css - react js中的css对齐问题
- python - 命名的临时文件未被删除
- r - curl 在终端中运行良好,httr 出现 419 错误
- akka - Akka 持久性:java.sql.SQLSyntaxErrorException:ORA-04043:对象“SOME_SCHEMA”不存在