[英]Python requests module to verify if HTTP login is successful or not
基本上我只想登錄一個網站並驗證 HTTP/S 身份驗證是否成功。
不幸的是,以下嘗試均無效。 我不知道登錄嘗試是否成功,因為我得到相同的<Response [200]>
密碼是否正確無關緊要。
我還檢查了 HTTP 流量。 如果登錄失敗,登錄頁面會顯示如下信息( http://localhost/test/login.php )
<div class="message">Login failed</div>
如果登錄成功,頁面將被重定向到index.php
http://localhost/test/index.php
登錄頁面上的 HTML 表單( http://localhost/test/login.php )
<form action="login.php" method="post">
<fieldset>
<label for="user">Username</label> <input type="text" class="loginInput" size="20" name="username"><br>
<label for="pass">Password</label> <input type="password" class="loginInput" autocomplete="off" size="20" name="password"><br>
<p class="submit"><input type="submit" value="Login" name="Login"></p>
</fieldset>
</form>
以下代碼 1 - 5 將產生<Response [200]>
而代碼 6 將顯示登錄頁面,如果用戶名/密碼錯誤則無關緊要。
代碼 1
import requests
url = 'http://localhost/test/login.php'
payload = {'username': 'admin', 'password': 'wrongpwd'}
requests.post(url, data=payload)
代碼 2
import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
url = 'http://localhost/test/login.php'
payload = { 'username': 'admin', 'password': 'wrongpwd' }
requests.post(url, data=payload, verify=False)
代碼 3
import requests
headers = {'User-Agent': 'Mozilla/5.0'}
url = 'http://localhost/test/login.php'
payload = {'username':'admin','pass':'wrongpwd'}
session = requests.Session()
resp = session.get(url,headers=headers)
cookies = requests.utils.cookiejar_from_dict(requests.utils.dict_from_cookiejar(session.cookies))
resp = session.post(url,headers=headers,data=payload,cookies=cookies)
session.get(url)
代碼 4
import requests
headers = {'User-Agent': 'Mozilla/5.0'}
url = 'http://localhost/test/login.php'
payload = {'username':'admin','password':'wrongpwd'}
session = requests.Session()
session.post(url,headers=headers,data=payload)
代碼 5
import requests
from requests.auth import HTTPBasicAuth
url = 'http://localhost/test/login.php'
requests.get(url, auth=HTTPBasicAuth('admin', 'wrongpwd'))
代碼6 (只顯示登錄頁面)
import requests
url = 'http://localhost/test/login.php'
values = {'username': 'admin', 'password': 'wrongpwd'}
r = requests.post(url, data=values)
print(r.content)
如果登錄成功與否,我應該怎么做才能獲得驗證?
所需 Output
Login successful
或者
Login failed
如果我的問題不清楚,或者您需要進一步解釋,請告訴我。
基本上我只想登錄一個網站並驗證 HTTP/S 身份驗證是否成功。
不幸的是,以下嘗試均無效。 我不知道登錄嘗試是否成功,因為我得到相同的<Response [200]>
密碼是否正確無關緊要。
我還檢查了 HTTP 流量。 如果登錄失敗,登錄頁面會顯示如下信息( http://localhost/test/login.php )
<div class="message">Login failed</div>
如果登錄成功,頁面將被重定向到index.php
http://localhost/test/index.php
登錄頁面上的 HTML 表單( http://localhost/test/login.php )
<form action="login.php" method="post">
<fieldset>
<label for="user">Username</label> <input type="text" class="loginInput" size="20" name="username"><br>
<label for="pass">Password</label> <input type="password" class="loginInput" autocomplete="off" size="20" name="password"><br>
<p class="submit"><input type="submit" value="Login" name="Login"></p>
</fieldset>
</form>
以下代碼 1 - 5 將產生<Response [200]>
而代碼 6 將顯示登錄頁面,如果用戶名/密碼錯誤則無關緊要。
代碼 1
import requests
url = 'http://localhost/test/login.php'
payload = {'username': 'admin', 'password': 'wrongpwd'}
requests.post(url, data=payload)
代碼 2
import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
url = 'http://localhost/test/login.php'
payload = { 'username': 'admin', 'password': 'wrongpwd' }
requests.post(url, data=payload, verify=False)
代碼 3
import requests
headers = {'User-Agent': 'Mozilla/5.0'}
url = 'http://localhost/test/login.php'
payload = {'username':'admin','pass':'wrongpwd'}
session = requests.Session()
resp = session.get(url,headers=headers)
cookies = requests.utils.cookiejar_from_dict(requests.utils.dict_from_cookiejar(session.cookies))
resp = session.post(url,headers=headers,data=payload,cookies=cookies)
session.get(url)
代碼 4
import requests
headers = {'User-Agent': 'Mozilla/5.0'}
url = 'http://localhost/test/login.php'
payload = {'username':'admin','password':'wrongpwd'}
session = requests.Session()
session.post(url,headers=headers,data=payload)
代碼 5
import requests
from requests.auth import HTTPBasicAuth
url = 'http://localhost/test/login.php'
requests.get(url, auth=HTTPBasicAuth('admin', 'wrongpwd'))
代碼6 (只顯示登錄頁面)
import requests
url = 'http://localhost/test/login.php'
values = {'username': 'admin', 'password': 'wrongpwd'}
r = requests.post(url, data=values)
print(r.content)
如果登錄成功與否,我應該怎么做才能獲得驗證?
所需 Output
Login successful
或者
Login failed
如果我的問題不清楚,或者您需要進一步解釋,請告訴我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.