python爬虫requests模块

requests库的七个主要方法

1. requests.requests(method, url, **kwargs)

构造一个请求,支撑以下各方法的基础方法

        method:请求方式,对应get/put/post等七中方法;

        url:拟获取页面的url链接;

        **kwargs:控制访问的参数,共13个;

        method:请求方式

            GET:请求获取url位置的资源;

            HEAD:获得该资源的头部信息;

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

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

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

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

        **kwargs:控制访问的参数,均为可选

            params:字典或字节序列,作为参数增加到url中;

            data:字典,字节序列或文件对象,作为Requests的内容;

            json:Json格式的数据,作为Requests的内容;

            headers:字典,HTTP定制头;

            cookies:字典或cookiejar,Requests中的cookie;

            auth:元组,支持HTTP认证功能;

            files:字典类型,传输文件;

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

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

            allow_redirests:True/Flase,默认为True,重定向开关;

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

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

            cert:本地SSL证书路径;

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

获取HTML网页的主要方法,对应HTTP的GET;

        params:url中额外参数,字典或字节流格式,可选;

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

3.requests.head(url, **kwargs)

获取HTML网页头信息方法,对应HTTP的HEAD;

        **kwarge:12个控制访问参数;

4.requests.post(url, data=None, json=None, **kwargs)

向HTML网页提交post请求的方法,对应HTTP的POST;

        data;字典、字节序列或文件,Requests的内容;

        json:Json格式的数据,Requests的内容;

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

5.requests.put(url, data=None, **kwargs)

向HTML网页提交PUT请求方法,对应HTTP的PUT;

        data:字典、字节序列或文件,Requests的内容;

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

6. requests.patch(url, data=None, **kwargs)

向HTML页面提交局部修请求,对应HTTP的PATCH;

        data:字典、字节序列或文件,Requests的内容;

        **kwagrs:12个控制访问参数;

7. requests.delete(uel, **kwagrs)

向HTML页面提交删除请求,对对应HTTP的DELETE;

        **kwagrs:12个访问控制的参数;

requests库的两个重要的对象

Response对象的属性

1. r.status_code

  HTTP请求的返回状态,200表示链接成功,404或其他表示失败;

2. r.text

  HTTP响应内容的字符串形式,即url对应的页面内容;

3. r.encoding

  从HTTP header中猜测的响应内容编码方式;

  如果header中不存在charset,则认为编码为ISO-8859-1,r.text根据r.encoding显示网页内容;

4. r.apparent_encoding    

  从内容中分析出的响应内容编码方式(备选编码方式);

5. r.content

  HTTP响应内容的二进制形式;

Requests库的异常

1. requests.ConnectionError

  网络连接错误异常,如DNS查询失败,拒绝链接等;

2. requests.HTTPError

  HTTP错误异常;

3. requests.URLRequired

  url缺失异常;

4.requests.TooManyRedirects

  超出最大重定向次数,产生重定向异常;

5. requests.ConnectTimeout

  连接远程服务器超时异常;

6. requests.Timeout

  请求url超时,产生超时异常;

7.r.raise_for_status()

  如果不是200,产生异常requests.HTTPError;

爬取网页的通用代码框架

import requests
def getHTMLText(url):
    try:
        r = requests.get(url, timeout=30)
        r.raise_for_status()
        #RU如果状态不是200,引发HTTPError异常
        r.encoding() = r.appearent_conding()
        return r.text
    except:
        return "产生异常"
if __name__ == "__main__":
    url = "www.baidu.com"
    print(getHTMLText(url))

 

posted @ 2017-10-06 22:58  ZhiChao&  阅读(354)  评论(0编辑  收藏  举报