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;

爬取网页的通用代码框架

  1. import requests
  2. def getHTMLText(url):
  3. try:
  4. r = requests.get(url, timeout=30)
  5. r.raise_for_status()
  6. #RU如果状态不是200,引发HTTPError异常
  7. r.encoding() = r.appearent_conding()
  8. return r.text
  9. except:
  10. return "产生异常"
  11. if __name__ == "__main__":
  12. url = "www.baidu.com"
  13. print(getHTMLText(url))

python爬虫requests模块的更多相关文章

  1. python 爬虫 requests模块 目录

    requests模块(response常用属性) 基于requests模块的get请求 基于requests模块发起ajax的get请求 基于requests模块发起ajax的post请求

  2. python 爬虫 requests模块(response常用属性)

    response常用属性 content获取的response对象中的二进制(byte)类型的页面数据response.content 返回响应状态码response.status_code 200 ...

  3. Python爬虫之使用Fiddler+Postman+Python的requests模块爬取各国国旗

    介绍   本篇博客将会介绍一个Python爬虫,用来爬取各个国家的国旗,主要的目标是为了展示如何在Python的requests模块中使用POST方法来爬取网页内容.   为了知道POST方法所需要传 ...

  4. Python爬虫—requests库get和post方法使用

    目录 Python爬虫-requests库get和post方法使用 1. 安装requests库 2.requests.get()方法使用 3.requests.post()方法使用-构造formda ...

  5. python爬虫 urllib模块url编码处理

    案例:爬取使用搜狗根据指定词条搜索到的页面数据(例如爬取词条为‘周杰伦'的页面数据) import urllib.request # 1.指定url url = 'https://www.sogou. ...

  6. python 爬虫 urllib模块 目录

    python 爬虫 urllib模块介绍 python 爬虫 urllib模块 url编码处理 python 爬虫 urllib模块 反爬虫机制UA python 爬虫 urllib模块 发起post ...

  7. Python之requests模块-hook

    requests提供了hook机制,让我们能够在请求得到响应之后去做一些自定义的操作,比如打印某些信息.修改响应内容等.具体用法见下面的例子: import requests # 钩子函数1 def ...

  8. Python之requests模块-cookie

    cookie并不陌生,与session一样,能够让http请求前后保持状态.与session不同之处,在于cookie数据仅保存于客户端.requests也提供了相应到方法去处理cookie. 在py ...

  9. Python之requests模块-session

    http协议本身是无状态的,为了让请求之间保持状态,有了session和cookie机制.requests也提供了相应的方法去操纵它们. requests中的session对象能够让我们跨http请求 ...

随机推荐

  1. 算法相关——Java排序算法之插入排序(四)

    0. 前言 本系列文章将介绍一些常用的排序算法.排序是一个非常常见的应用场景,也是开发岗位面试必问的一道面试题,有人说,如果一个企业招聘开发人员的题目中没有排序算法题,那说明这个企业不是一个" ...

  2. Item 22: 当使用Pimpl机制时,在实现文件中给出特殊成员函数的实现

    本文翻译自<effective modern C++>,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 如果你曾经同过久的编译时间斗争过,那么你肯定对Pi ...

  3. en

    发音,这个应该算是学习英语的头等大事,如果没有机会和条件练好发音,也可以先将就着,不过后面你就会感觉到你说的人家可能会听不懂,我自己也曾经深受其害. 基本常用单词积累(大概2000~4000左右的词汇 ...

  4. 基于 Django的Ajax实现 文件上传

    ---------------------------------------------------------------遇到困难的时候,勇敢一点,找同学朋友帮忙,找导师求助. Ajax Ajax ...

  5. Python全栈开发之路 【第六篇】:Python基础之常用模块

    本节内容 模块分类: 好处: 标准库: help("modules") 查看所有python自带模块列表 第三方开源模块: 自定义模块: 模块调用: import module f ...

  6. MySQL的log_bin和sql_log_bin 的区别

    利用二进制还原数据库的时候,突然有点纠结,log_bin和sql_log_bin有什么区别呢?行吧,搜搜,结合自己的经验,简单说一下.log_bin:二进制日志. 在 mysql 启动时,通过命令行或 ...

  7. Ubuntu 14.04 安装caffe

    仅支持CPU模式 sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-ser ...

  8. CRM系统(第四部分)

      阅读目录 1.引入权限组件rbac 2.分配权限 3.登录.引入中间件 1.引入权限组件rbac 1.settings配置app.中间件   INSTALLED_APPS = [ ... ... ...

  9. #Leetcode# 985. Sum of Even Numbers After Queries

    https://leetcode.com/problems/sum-of-even-numbers-after-queries/ We have an array A of integers, and ...

  10. Spring.profile配合Jenkins发布War包,实现开发、测试和生产环境的按需切换

    前两篇不错 Spring.profile实现开发.测试和生产环境的配置和切换 - Strugglion - 博客园https://www.cnblogs.com/strugglion/p/709102 ...