我需要在一个有要求的网站上登录我,但我尝试过所有工作:
from bs4 import BeautifulSoup as bs
import requests
s = requests.session()
url = 'https://www.ent-place.fr/CookieAuth.dll?GetLogon?curl=Z2F&reason=0&formdir=5'
def authenticate():
headers = {'username': 'myuser', 'password': 'mypasss', '_Id': 'submit'}
page = s.get(url)
soup = bs(page.content)
value = soup.form.find_all('input')[2]['value']
headers.update({'value_name':value})
auth = s.post(url, params=headers, cookies=page.cookies)
authenticate()
或:
import requests
payload = {
'inUserName': 'user',
'inUserPass': 'pass'
}
with requests.Session() as s:
p = s.post('https://www.ent-place.fr/CookieAuth.dll?GetLogon?curl=Z2F&reason=0&formdir=5', data=payload)
print(p.text)
print(p.status_code)
r = s.get('A protected web page url')
print(r.text)
当我使用.status_code尝试此操作时,它会返回200,但我想要401或403来执行像#39;如果登录' ...
有人知道该怎么办?
答案 0 :(得分:0)
你可以尝试一下。
您的登录网址不正确,您可以在浏览器的开发者工具中查看网络请求。
import requests
payload = {
'username': 'user',
'password': 'pass'
}
with requests.Session() as s:
p = s.post('https://www.ent-place.fr/CookieAuth.dll?Logon', data=payload)
print(p.text)
print(p.status_code)
答案 1 :(得分:0)
这些是你应该提供的参数。
curl:Z2F
flags:0
forcedownlevel:0
formdir:5
username:yourusername
password:yourpassword
SubmitCreds.x:57
SubmitCreds.y:23
SubmitCreds:Ouvrir une session