python - 模拟登陆
模拟登陆
- 一个需要账号密码的网站
- 一个可以登陆改网站的账号密码
打开google浏览器的开发工具,打开网站输入账号密码登陆
查看
将上面开发工具中获取到的headers数据组装到你的headers请求中
模拟请求
- 先请求到网站的session
- 然后根据该session去获取其他的接口数据
直接先上一个例子
import requests
import pymongo
from bs4 import BeautifulSoup as BSurl = "http://test-domain/auth/login"
headers = {
'cookie': 'ajs_group_id=null; ajs_user_id=null; s_ecid=MCMID%7C42805354795074670630795955521086622605; _ga=GA1.2.424645917.1587194200; experimentation_subject_id=IjZlNGMxMDYzLWNlNTktNDBlMi05ODhkLTA2N2NlNDg5YTA4MSI%3D--b628428cde993845f643070ed163e5501a5fc701; mbox=session#07f98159ca4d4763b90d060be6e6332f#1588041730|PC#07f98159ca4d4763b90d060be6e6332f.22_0#1651284670; utag_main=v_id:0171be8d6590001a94ebfa699c3803072001d06a00a83$_sn:1$_se:1$_ss:1$_st:1588041669851$ses_id:1588039869851%3Bexp-session$_pn:1%3Bexp-session$dc_visit:1$dc_event:1%3Bexp-session$dc_region:ap-northeast-1%3Bexp-session; _gcl_au=1.1.1853935060.1588039873; _mkto_trk=id:183-WCT-620&token:_mch-lenovo.com-1588039873371-62331; LA_F_T_10000314=1594102001286; LA_C_Id=_ck20070714064113470655972521847; LA_R_T_10000314=1594102001286; LA_V_T_N_S_10000314=1594102001286; LA_M_W_10000314=_ck20070714064113470655972521847%7C10000314%7C%7C%7C; globalUserId=%2266fe2b0d9d1bcd56b697c60324d06b7e%22; LA_V_T_N_10000314=1594102439891; AMCV_F6171253512D2B8C0A490D45%40AdobeOrg=1075005958%7CMCMID%7C42805354795074670630795955521086622605%7CMCIDTS%7C18467%7CMCAID%7CNONE%7CMCOPTOUT-1595505620s%7CNONE%7CMCAAMLH-1596103220%7C8%7CMCAAMB-1596103220%7Cj8Odv6LonN4r3an7LhD3WZrU1bUpAkFkkiY1ncBR96t2PTI%7CvVersion%7C4.4.1; rxVisitor=159572704807477DGBG0RR0QN906Q5T3QASC0RT82HMQ5; dtSa=true%7CC%7C-1%7CLenovo%20Login%7C-%7C1595727053902%7C327048032_741%7Chttps%3A%2F%2Flbp.lenovo.com%2Flogin%7CQuotation%20Login%7C1595727050746%7C%7C; dtPC=4$327069372_789h-vVJWORPKQCGUEABRCFHHMCHQTFVCWLFCF-0; rxvt=1595728891574|1595727048095; dtLatC=7; dtCookie=v_4_srv_4_sn_542C5621FC94A714AFE0DB2BC1135656_perc_100000_ol_0_mul_1_app-3A013b33ccc3071288_1',
'Content-Type': 'application/json;charset=UTF-8',
'Accept': 'application/json, text/plain, */*',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8',
'Connection': 'keep-alive',
'Content-Length': '42',
'Content-Type': 'application/json;charset=UTF-8',
'Host': 'F12里面的内容',
'Origin': 'F12里面的内容',
'Referer': 'F12里面的内容',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36'
}rs= requests.session()
res=rs.post(url,data='{"username":"登陆账号","password":"登陆密码"}',headers=headers)print(res.text)
ress=rs.get('http://test-domain/api/account')
print(ress.text)
结果:
请求的session