博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python爬虫requests模块
阅读量:5750 次
发布时间:2019-06-18

本文共 2421 字,大约阅读时间需要 8 分钟。

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 requestsdef 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))

 

转载于:https://www.cnblogs.com/zhichaoma/p/7633206.html

你可能感兴趣的文章
首个5G智慧机场落地广州 速度是4G的50倍
查看>>
持续集成是什么
查看>>
JavaScript设计模式之面向对象编程
查看>>
Android 最简单的自定义Dialog之一
查看>>
磨刀不误砍柴 - 配置适合工作学习的桌面环境
查看>>
自己动手写docker-3
查看>>
Java笔记-反射机制(一)
查看>>
OpenCV在Android中的集成与简单使用
查看>>
redux v3.7.2源码解读与学习之 applyMiddleware
查看>>
【React】为什么我不再使用setState?
查看>>
Git原理与高级使用(3)
查看>>
从JDK源码看Writer
查看>>
Express 结合 Webpack 实现HMRwi
查看>>
SQL模糊查询通配符_和%处理
查看>>
ssl免费申请
查看>>
我的友情链接
查看>>
mysql优化的相关知识
查看>>
基于protobuf的RPC实现
查看>>
ehcache 常用参数
查看>>
坚信每个人都能成为品牌
查看>>