• Requests库的使用


    Requests库是python对于HTTP网页进行操作的最简单易用的库。

    Python的Requests库主要有一下集中使用方法:

    requests.request() 构造一个请求,是以下各种方法的基础
    requests.get() 获取HTML网页的主要方法,对应于HTTP的GET
    requests.head() 获取HTML网页头信息的主要方法,对应于HTTP的HEAD
    requests.post() 向HTML网页提交POST请求的方法,对应于HTTP的POST
    requests.put() x向HTML网页提交PUT请求的方法,对应于HTTP的PUT
    requests.patch() x向HTMl网页提交局部修改请求,对应于HTTP的PATCH
    requests.delete() x向HTML页面提交删除请求,对应于HTTP的DELETE

    requests.get()方法的使用:

    request.get(url,params = None,**kwargs)

    url : 想要获取的页面的url链接,(例如:https://www.baidu.com)必须加https:// ,否则会报错。

    params : url中的额外参数,字典或字节流格式,可选,默认为None。

    **kwargs : 12个控制访问的参数

    Response对象包含服务器返回的信息,也包含请求的Request信息。

    Response对象的属性:

    r.status_code

    HTTP请求返回的状态,200表示连接成功,404表示连接失败。

    r.text HTTP响应内容的字符串形式,即,url对应的页面内容。
    r.encode c从HTTP header中猜测的响应内容的编码方式
    r.apparent_encoding c从内容中分析出的响应内容的编码方式
    r.content HTTP响应内容的二进制形式

    代码示例:

    r.encoding和r.apparent_encoding的区别:

    r.encoding:如果Header中不存在charest,则认为编码是ISO-8859-1,r.text根据r.encoding的编码方式显示内容

    r.apparent_encoding:根据网页内容分析出的编码方式,可以看作是r.encoidng的备选

    r.raise_for_status()函数会在其内部判断r.status_code是否等于200,如果不等于会直接报错,一般用于try...except进行异常处理。

    爬取网页的通用代码框架:

    def getHTMLText(url):
        try:
            r = requests.get(url)
            r.raise_for_status()     #如果状态不是200,会引发HTTPError异常
            r.encoding = r.apparent_encoding
            return r.text
        except:
            return '爬取失败‘’

     Requests库的异常:

    requests.ConnectionError 网络连接错误异常,如:DNS查询失败,拒绝连接等
    requests.HTTPError HTTP错误异常
    requests.URLRequired URL缺失异常
    requests.TooManyRedirects 超过最大重定向次数,产生重定向异常
    requests.ConntecionTimeout 连接远程服务器超时异常
    requests.Timeout 请求URL超时,产生超时异常
  • 相关阅读:
    C语言(北京理工大学MOOC 上)
    四则运算、进制转换、变量内存分配
    C语言(挑战ACM-ICPC,DEVFORGE学编程社区)
    迭代公式求平方根
    C语言(数据结构,DEVFORGE学编程社区)
    C语言(复杂数据,DEVFORGE学编程社区)
    C语言(字符串,DEVFORGE学编程社区)
    c语言(北京理工大学mooc 下)
    华中农业大学mooc编程题
    Java通过POI读取Excel
  • 原文地址:https://www.cnblogs.com/wobu/p/8878259.html
Copyright © 2020-2023  润新知