Python--Requests
@、请求warning.warn(
警告信息:InsecureRequestWarning: Unverified HTTPS request is being
在脚本前面添加:requests.packages.urllib3.disable_warnings()
@、timeout设置问题
原文:https://www.cnblogs.com/tianleblog/p/11496177.html
timeout参数分为连接timeout和读取timeout,如果请求timeout参数只设置了一个数值,则是连接timeout和读取timeout之和,如果要分别设置可以使用tuple类型(连接timeout, 读取timeout)。读取timeout没有默认值,如果没有设置timeout,程序将一直处于等待状态。在实际开发中遇到了这种情况,日志记录到某处之后就没有新日志产生了。所以,一定要设置timeout参数。
@、cookie的设置与读取
原文:
读取:https://www.cnblogs.com/liuzhzhao/p/12114453.html
设置:https://blog.csdn.net/qq_1290259791/article/details/80809509
设置:一般简单的cookie直接拼字符串,然后设置headers['cookies'],获取使用session,session会自动维护cookie
读取:
response = requests.post(url, headers=headers, data=data, verify=False, timeout=30) print(requests.utils.dict_from_cookiejar(response.cookies))
@、证书认证
① 可以设置verify=False,不进行验证
② 通过设置cert参数,指定证书文件路径,并且key文件是解密状态
requests.get(url, cert=('xxx.crt', 'xxx.key'))
@、身份认证
设置auth参数
requests.get(url, auth=HTTPBasicAuth('name', 'password')
或者
requests.get(url, auth=('name', 'password'),默认使用HTTPBasicAuth
OAuth认证需要安装库:pip install requets_oauthlib
requests.get(url, auth=OAuth1('app key', 'app secret', 'token', 'token secret'))
@、代理设置
设置proxies参数
proxies = {
'http': ''http://user:password@host:port,
}
requests.get(url, proxies=proxies)
@、Prepared Request
from requests import Request, Session def test_Request(): print('Request'.center(50, '=')) url = 'https://www.httpbin.org/post' data = {'name': '名称'} headers = { 'User-Agent': 'test Request' } session = Session() # 准备好请求数据,这样每个请求都是独立而统一,可以放到队列中进行后续请求操作 req = Request('POST', url, data=data, headers=headers) prep_req = session.prepare_request(req) # 发起请求 response = session.send(prep_req) print(response.status_code, response.text) def main(): test_Request() if __name__ == '__main__': main()