session请求
登录后会自动保存cookie,之后直接用保存cookie的session请求
# coding:utf-8
import requests
s = requests.session() # 相当于一个微型的浏览器 会保存cookie
login_url = "http://47.xx.xxx.xx:9000/zentao/user-login.html"
headers = {
"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"Upgrade-Insecure-Requests":"1"
}
body = {
"account":"admin",
"password":"e10adc3949ba59abbe56e057f20f883e",
"referer":"http://47.xx.xxx.xx:9000/zentao/my/"
}
r = s.post(login_url,headers=headers,data=body,verify=False)
req_url = "http://47.xx.xxx.xx:9000/zentao/qa/"
r1 = s.get(req_url,headers=headers,verify=False)
print(r1.text)
绕过验证码请求(抓包获取到cookie,更新cookie请求)
# coding:utf-8
import requests
# 不需要登录操作,只需要记录下登录后的cookie,更新cookie,带cookie请求
s = requests.session()
headers = {
"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"Upgrade-Insecure-Requests":"1"
}
coo = requests.cookies.RequestsCookieJar()
# 抓包请求获取到的cookie,"lang=zh-cn; theme=default; windowWidth=1920; windowHeight=969; zentaosid=u8atlrmj586464efuaegfpaf84"
coo.set("lang","zh-cn")
coo.set("theme","default")
coo.set("windowWidth","1920")
coo.set("zentaosid","u8atlrmj586464efuaegfpaf84")
s.cookies.update(coo)
req_url = "http://47.xx.xxx.xx:9000/zentao/qa/"
r1 = s.get(req_url,headers=headers,verify=False)
print(r1.text)
用selenium做登录操作获取到cookie
使用情况,登录接口分析有难度,有动态数据无法直接获取,就可以从ui层面去解决
# coding:utf-8
import requests
from selenium import webdriver
s = requests.session()
# 1.用selenium在界面做登录操作后,获取到cookie
driver = webdriver.Chrome()
driver.get("http://192.168.1.9:8080/login.do?gotoURL=http%3A%2F%2F192.168.1.9%3A8080%2Fportal%2Fgeoindex.do")
driver.maximize_window()
driver.implicitly_wait(3)
driver.find_element_by_id("userAccount").clear()
driver.find_element_by_id("userAccount").send_keys("suner001")
driver.find_element_by_id("passwd").clear()
driver.find_element_by_id("passwd").send_keys("123456")
driver.find_element_by_id("btnlogin").click()
coo_1 = driver.get_cookie("JSESSIONID")["value"]
coo_2 = driver.get_cookie("SSOID")["value"]
cook = {
"JSESSIONID":coo_1,
"SSOID":coo_2
}
# 2. 将获取到的cookies作为参数传入
req_url = "http://192.168.1.9:8080/cls/queryList_ClsInfo.do?classType=1&limit=10&offset=0"
headers = {
"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"Origin":"http://192.168.1.9:8080",
"Referer":"http://192.168.1.9:8080/exam/page_myPaperList.do",
}
body = {
"search":""
}
r = s.post(req_url,headers=headers,cookies=cook,data=body,verify=False)
print(r.text)