• Requests高级操作(一)


    1、代理设置

    代理(英语:Proxy),也称网络代理,是一种特殊的网络服务,英文全称是(Proxy Server),其功能就是代理网络用户去取得网络信息。形象的说:它是网络信息的中转站。代理服务器就好象一个大的Cache,这样就能显著提高浏览速度和效率。Requests模块设置代理的方式如下:

    import requests
    
    proxy_server={'http':'http://127.0.0.1:443','https':'https://127.0.0.1:443'}
    response=requests.get('https://www.taobao.com/',proxies=proxy_server,verify=False)
    print(response.content.decode('utf-8'))
    # 包含用户名和密码的代理:
    import requests
    # proxies={ "http": "http://username:password@127.0.0.1:443/" }
    proxies={ "http": "http://15581660487:123456@127.0.0.1:443/" } 
    response=requests.get("https://www.taobao.com/",proxies=proxies,verify=False)
    print(response.content.decode('utf-8'))

    2、超时设置

    Requests模块可以设置接收数据的超时时间,超出设定的时间还没有数据返回,就抛出异常,超时设置有两种类型表达:float、tupleimport 

    import  requests
    
    # response=requests.get('https://www.baidu.com',timeout=2) #float
    response=requests.get('https://www.baidu.com',timeout=(0.1,0.2)) #tuple 前面是链接请求时间 后面是接收内容时间
    print(response.content.decode('utf-8'))

    3、重定向设置

    在请求url时,服务器会自动把我们的请求重定向,可以使用r.history来查看重定向。如果不想进行自动重定向,可以用参数allow_redirects关闭。

    #重定向
    import requests
    
    response=requests.get('http://www.360buy.com')
    print(response.history)
    print(response.url)
    
    response1=requests.get('http://www.360buy.com',allow_redirects=False)
    print(response1.history)
    print(response1.url)

    4、SSL Cert Verification

    很多网站都是https,但是不用证书也可以访问,大多数情况都是可以携带也可以不携带证书如知乎\百度等都是可带可不带,但有硬性要求的,则必须带,比如对于定向的用户,拿到证书后才有权限访问某个特定网站。举例:https://www.12306.cn

    import requests
    
    response=requests.get('https://www.12306.cn')
    print(response.content.decode('utf-8'))
    #如果response.content.decode('utf-8')报错,说明网站需要SSL认证,处理方式如下
    #方式一:verify改为False 不认证证书
    #老版本requests处理警告
    response=requests.get('https://www.12306.cn',verify=False)
    print(response.content.decode('utf-8'))
    # 方式二:关闭警告
    #关闭警告方法1
    requests.packages.urllib3.disable_warnings()
    #关闭警告方法2
    # urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) 
    response=requests.get('https://www.12306.cn',verify=False)
    print(response.content.decode('utf-8'))
    #方式三:pyopenssl
    # pip install -U requests[security]
    # pip会安装三个security相关的package:pyopenssl\cryptography \cffi
    #方式四:加上证书:(最好的解决方案)
    response=requests.get('https://www.12306.cn',cert=('/path/server.crt','/path/key'))
  • 相关阅读:
    Windows消息机制
    inherited 为什么可以调用父类的private函数? [问题点数:100分,结帖人:h2plus0]
    C++Buidler6中需要注意的几个问题
    BGA封装芯片拆装全程纪实
    Delphi组件开发教程指南(四)组件生成过程(TWinControl)
    Delphi技巧集六 (等待执行完一个外部程序再执行另一个程序)
    C++ Builder高级应用开发指南
    干掉“Spirale”病毒
    完全看懂新世代x86指令集結構
    Delphi 组件撰写常问问题delphi 在整合环境中如何找出组件所产生的问题
  • 原文地址:https://www.cnblogs.com/lvhuayan/p/14920757.html
Copyright © 2020-2023  润新知