• 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'))
  • 相关阅读:
    软件工程第二次作业
    软件工程第一次作业
    5T-时延小结
    4T--5G网络时延
    2T--网络切片
    1T--5G 三大应用场景
    2020软件工程第一次作业
    软件工程最后一次作业
    软件工程第四次作业
    软件工程第三次作业
  • 原文地址:https://www.cnblogs.com/lvhuayan/p/14920757.html
Copyright © 2020-2023  润新知