• 第一周单元1:Requests库入门


    Http协议对资源的操作

    方法                说明 

    GET:请求获取URL位置的资源 

    HEAD:请求获取URL位置资源的响应消息报告,即获得该资源的头部信息 

    POST:请求向URL位置的资源后附加新的数据 

    PUT:请求向URL位置存储一个资源,覆盖原URL位置的资源 

    PATCH:请求局部更新URL位置的资源,即改变该处资源的部分内容 

    DELETE:请求删除URL位置存储的资源


    PATCH和PUT的区别:

    假设URL位置有一组数据UserInfo,包括UserID、UserName等20个字段
    需求:用户修改了UserName,其他不变
    • 采用PATCH,仅向URL提交UserName的局部更新请求
    • 采用PUT,必须将所有20个字段一并提交到URL,未提交字段被删除
    PATCH的最主要好处:节省网络带宽


    **kwargs: 控制访问的参数

    files   : 字典类型,传输文件 

    timeout : 设定超时时间,秒为单位 

    proxies : 字典类型,设定访问代理服务器,可以增加登录认证 

    allow_redirects: True/False,默认为True,重定向开关 

    stream  : True/False,默认为True,获取内容立即下载开关 

    verify  : True/False,默认为True,认证SSL证书开关 

    cert    : 本地SSL证书路径

    proxies : 字典类型,设定访问代理服务器,可以增加登录认证            

    >>> pxs={'http':'http://user:pass@10.10.10.1:1234' 
                    'https':'https://10.10.10.1:4321'} 
    >>> r=requests.request('GET','http://www.baidu.com',proxies=pxs)

    response的异常:

    r.raise_for_status():如果不是200,产生异常requests.HTTPError

    r = requests.get(url)

    r.raise_for_status()在方法内部判断r.status_code是否等于200,不需要增加额外的if语句,该语句便于利用try‐except进行异常处理

    爬取网页通用代码框架:

    # coding:utf-8
    import requests
    
    try:
        r = requests.get(url="http://www.baidu.com", timeout=30)
        r.raise_for_status()    # 若返回的状态码不是200,将产生一次异常
        r.encoding = r.apparent_encoding
        print(r.text)           # 教程用return,此处用return报错
    except:
        print("Error")          # 教程用return,此处用return报错
  • 相关阅读:
    【转】性能测试分享---java vuser协议(2)---LoadRunner篇
    【转】性能测试分享---java协议(1)------jemter篇
    windows下怎么修改mysql密码
    linux下怎么修改mysql的字符集编码默认分类
    java使用Redis2--保存对象
    java使用Redis1--安装与简单使用
    java实现hash一致性算法
    Redis Sentinel初体验
    Redis持久化实践及灾难恢复模拟
    Redis学习笔记
  • 原文地址:https://www.cnblogs.com/p36606jp/p/15113872.html
Copyright © 2020-2023  润新知