我正在尝试登录网站 https://app.factomos.com/connexion但这不起作用,我仍然有错误 403,我尝试使用不同的 header 和不同的数据,但我真的不知道问题出在哪里......
我尝试使用 MechanicalSoup 的另一种方法,但仍然返回到连接页面。
如果有人可以帮助我...谢谢您的宝贵时间:/
import requests
from bs4 import BeautifulSoup as bs
url = 'https://factomos.com'
email = 'myemail'
password = 'mypassword'
url_login = 'https://factomos.com/connexion'
headers = requests.utils.default_headers()
headers.update({
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36',
})
data_login = {
'appAction': 'login',
'email': email,
'password': password
}
with requests.Session() as s:
dash = s.post(url_login, headers=headers, data=data_login)
print(dash.status_code)
# MechanicalSoup
import mechanicalsoup
browser = mechanicalsoup.StatefulBrowser()
resp = browser.open("https://app.factomos.com/connexion")
browser.select_form('form[id="login-form"]')
browser["email"] = 'myemail'
browser["password"] = 'mypassword'
response = browser.submit_selected()
print("submite: ", response.status_code)
print(browser.get_current_page())
我期望仪表板页面响应 200,但实际响应是 403 或连接页面。
最佳答案
您用于登录的 URL (https://factomos.com/connexion
) 不是正确的登录端点。您可以使用浏览器的 devtools/inspect 元素面板找到这一点,特别是“网络”选项卡。
访问此面板会因浏览器而异。 Here's how you do it in Chrome ,但一般来说,您可以通过右键单击并单击检查元素来访问它。
从那里,我发送了一个虚假的登录尝试,我发现实际的登录端点是:
https://app.factomos.com/controllers/app-pro/login-ajax.php
发送请求后,您可以查看有关该请求的详细信息。收到回复后,您也可以看到这些详细信息。以下是请求详细信息:
这是我发送的表单数据:
响应:
{"error":{"code":-1,"message":"Identifiant ou mot de passe incorrect"}}
关于python - 无法使用 python 请求登录网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57272639/