python - 模拟登陆

模拟登陆

  • 一个需要账号密码的网站
  • 一个可以登陆改网站的账号密码

打开google浏览器的开发工具,打开网站输入账号密码登陆

python - 模拟登陆

python - 模拟登陆

查看

python - 模拟登陆

将上面开发工具中获取到的headers数据组装到你的headers请求中

 

模拟请求

  • 先请求到网站的session
  • 然后根据该session去获取其他的接口数据

直接先上一个例子 

import requests
import pymongo
from bs4 import BeautifulSoup as BS

url = "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

python - 模拟登陆