[英]Python web scraping login
我正在嘗試使用python登錄到網站。 登錄URL為:
https://login.flash.co.za/apex/f?p=pwfone:login
並且“表單操作”網址顯示為:
https://login.flash.co.za/apex/wwv_flow.accept
當我手動登錄時在chrome上使用“ inspect element”時,這些是顯示的表單帖子(pt_02 =密碼):
有一些隱藏的項目,我不確定如何添加到下面的python代碼中。
當我使用此代碼時,將返回登錄頁面:
import requests
url = 'https://login.flash.co.za/apex/wwv_flow.accept'
values = {'p_flow_id': '1500',
'p_flow_step_id': '101',
'p_page_submission_id': '3169092211412',
'p_request': 'LOGIN',
'p_t01': 'solar',
'p_t02': 'password',
'p_checksum': ''
}
r = requests.post(url, data=values)
print r.content
如何調整此代碼以執行登錄?
Chrome網絡:
由於無法重新創建案件,因此無法告訴您要確切更改的內容,但是在執行此類操作時,我使用Postman攔截了瀏覽器發送的所有請求。 因此,我將安裝它以及瀏覽器擴展,然后執行登錄。 然后,您可以在Postman中查看請求,還可以查看在此收到的響應,此外,它還為您提供了請求的Python代碼,因此您可以簡單地復制並使用它。 不久,使用Pstman,執行登錄,克隆他們的請求。
這或多或少是您的腳本的外觀。 使用會話自動處理Cookie。 手動填寫username
和password
字段。
import requests
from bs4 import BeautifulSoup
logurl = "https://login.flash.co.za/apex/f?p=pwfone:login"
posturl = 'https://login.flash.co.za/apex/wwv_flow.accept'
with requests.Session() as s:
s.headers = {"User-Agent":"Mozilla/5.0"}
res = s.get(logurl)
soup = BeautifulSoup(res.text,"lxml")
values = {
'p_flow_id': soup.select_one("[name='p_flow_id']")['value'],
'p_flow_step_id': soup.select_one("[name='p_flow_step_id']")['value'],
'p_instance': soup.select_one("[name='p_instance']")['value'],
'p_page_submission_id': soup.select_one("[name='p_page_submission_id']")['value'],
'p_request': 'LOGIN',
'p_arg_names': soup.select_one("[name='p_arg_names']")['value'],
'p_t01': 'username',
'p_arg_names': soup.select_one("[name='p_arg_names']")['value'],
'p_t02': 'password',
'p_md5_checksum': soup.select_one("[name='p_md5_checksum']")['value'],
'p_page_checksum': soup.select_one("[name='p_page_checksum']")['value']
}
r = s.post(posturl, data=values)
print r.content
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.