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()

 

posted @ 2021-07-30 18:02  liDB  阅读(42)  评论(0编辑  收藏  举报