举例
import requests
class Check_url():
def __init__(self):
self.urls=[]
self.errors=[]
self.ids=[]
requests.packages.urllib3.disable_warnings()
header = {
"Referer": "xxx"
}
url = '登录接口'
param = {"verifycode": "xx", "username": "xx", "password": "xxx", "cpinsadm_cryptCode": "xxx"}
#调用登录接口,获取到登录态
session = requests.Session()
session.post(url, data=param, headers=header, verify=False)
url = '登录后获取链接接口'
for page in range(1,2):
try:
param = {"pageno": page, "t": "1585629902590"}
#使用已经获取登录态的session去请求接下来的接口
res = session.get(url, params=param, headers=header, verify=False)
res = res.json()
if res["errno"]==0:
for i in range(len(res["record"])):
self.urls.append(res["record"][i]["tfurl_nologin"])
self.ids.append(res["record"][i]["id"])
else:
self.errors.append(res["errno"])
self.errors.append(res["errmsg"])
except Exception as msg:
print(msg)
这里需要有两个点:
1,session的使用
先调用登录接口获取到登录态
session = requests.Session()
session.post(url, data=param, headers=header, verify=False)
再去请求其它需要登录的接口,拿到信息
res = session.get(url, params=param, headers=header, verify=False)
2,线上请求https接口
一般请求https接口会报错提示认证,所以需要在请求前做一下处理
第一步:解决requests提示警告InsecureRequestWarning的问题
requests.packages.urllib3.disable_warnings()
第二步:在requests做请求的时候,为了避免ssl认证,可以将verify=False
res = session.get(url, params=param, headers=header, verify=False)