zoukankan      html  css  js  c++  java
  • 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超时,产生超时异常
  • 相关阅读:
    poj2115
    poj2136
    软件的架构与设计模式之模式的种类
    SOA: My Understanding (转载未来技术方向)
    深度管理Remote Objects的生存期 (转载)
    SmartClient(智能客户端) 转载
    Windows Communication Foundation入门(Part One)
    使用.NET Remoting开发分布式应用——基于租约的生存期(转载)
    软件设计模式C#
    MarshalByRefObjects远程对象及其调用方法
  • 原文地址:https://www.cnblogs.com/wobu/p/8878259.html
Copyright © 2011-2022 走看看