参考链接
https://www.cnblogs.com/liuzhzhao/p/12114453.html
思路:先调用登录接口获取cookie,再将获取到的cookie用到其他的接口调用中去
登录接口需要账号,密码,验证码,验证码需要到redis中获取
#coding:utf-8
import redis
import os
import requests
host = ''
port = 11111
password = '123456'
#建立一个redis连接池,然后作为参数 Redis,这样就可以实现多个 Redis 实例共享一个连接池
pool = redis.ConnectionPool(host=host,port=port,password=password)
r = redis.Redis(connection_pool=pool)
def getKey_fRedis(key):
'''
从redis中获取指定key的value值
'''
value = r.get(key)
return value
def get_code(key):
'''
获取验证码
'''
if getKey_fRedis(key) == None:
#index = requests.get("http://ip:port/url/")
print "step1"
os.system("curl http://ip:port/url/")
#code = getKey_fRedis(key).replace("\"",'')
#return code
import requests
def login(key):
login_url = 'http://ip:port/login'
headers = {
"Accept": "application/json, text/javascript, */*; q=0.01"
}
body = {
"username": "test",
"password": "1234567",
"vrifyCode": get_code(key)
}
try:
res = requests.post(url=login_url, headers=headers, data=body)
cookies = res.cookies
cookie = requests.utils.dict_from_cookiejar(cookies)
return cookie
except Exception as err:
print('获取cookie失败:\n{0}'.format(err))
def get_data(key,get_data_url):
ck = login(key)
cookie = {
'_wafuid': ck["_wafuid"],
'JSESSIONID': ck["JSESSIONID"],
' _wafuid': '99627601'
}
res = requests.get(url=get_data_url, cookies=cookie)
print res.text
if __name__=="__main__":
key = 'test'
get_data_url = 'http://ip:port/url'
#get_data(key, get_data_url)
#get_code(key)
get_code(key)
print getKey_fRedis(key)