一、简单的request请求
#未传cookie
import requests
# 类型按照驼峰形式抒写
class Login:
"""利用requests封装 get post请求"""
def http_request(self, url, data, method, cookie=None): # 参数化
"""url请求的地址 http://XXXX:port"""
"""param:传递的参数 非必填参数 字典的格式传递参数"""
"""method:请求方法 支持get 以及post """
#lower()小写识别
if method.lower() == "get":
# verify=False忽略证书 ssl
res = requests.get(url, data, cookies=cookie, verify=False)
return res
elif method.lower() == "post":
res = requests.post(url, data, cookies=cookie, verify=False)
return res # 返回的是一个消息实体
else:
raise Exception('不支持的请求')
#html格式
print("响应正文1:",res.text)
print("响应状态码:",res.status_code)
print("响应头:",res.headers)#响应头
print("代理user-agent",res.request.headers)#请求头
return res #返回的是一个消息实体
if __name__ == '__main__':
url = "https://passport.csdn.net/login"
#将代理伪装成游览器,User-Agent是请求头里面的数据
header={'User-Agent': 'Mozilla/5.0'}#伪装的chrome游览器
data = {"userIdentification": "账户",
"pwdOrVerifyCode": "密码"
}
res_login = Login().http_request(url, data, "get")
# 输出格式为json格式
result = res_login.json()
print("请求返回的结果为:",result)
#注:InsecureRequestWarning只是不安全的意思
#登录成功才会有cookie
#html xml json ---》text
#html xml json ---》json()会报错 只有json的返回值才支持json
#有验证码的解决方法:(无论是图片还是短信)
#1、屏蔽它
#2、搞个万能的
#3、去数据库里面查实时的
#4、手动填,比如发在手机上的验证码
#请求头里面包含的数据:Accept-Language、Accept-Charset、Accept、Accept-Encoding、User-Agent、Connection