requests库1 基本方法简介

1.request库的安装

-用管理员权限启动command控制台

  • pip install requests
    安装成功

2.request库的简介

3.request库的使用

import requests
r = requests.get("http://www.baidu.com")#以访问百度主页为例
r.status_code#查看状态码,返回为200表示正常
#200
r.encoding='utf-8'#更改编码
r.text#打印网页内容

image.png

要理解requests库的方法,要先理解HTTP协议。
HTTP, Hypertext Transfer Protocol超文本传输协议
HTTP是一种基于“请求与响应”模式的、无状态的应用层协议
HTTP协议采用URL作为定位网络资源的标识。
URL格式:http://host[:port][path]
host: 合法的Internet主机域名或IP地址
port: 端口号,缺省端口为80
path: 请求资源的路径

HTTP协议对资源的操作
PUT 方法 vs PATCH方法:
image.png
image.png

3.1 requests.request(method, url, **kwargs )
method: 请求方式,对应get/put/post等7种
**kwargs:控制访问的参数,共13个,均为可选项


method种类

**kwargs:

  1. params:字典或字节序列,作为参数增加到url中,即加到url末尾


    image.png
  2. data:字典、字节序列、或文件对象,作为Request的内容,即向url链接的位置中传输数据


    image.png
  3. json:JSON 格式的数据,作为Request的内容,和data类似
  4. headers:字典,HTTP定制头,用于模拟访问url链接时的http头


    即服务器为认为用户是一chrome10浏览器进行访问的
  5. cookies:字典或cookies,Requests中的cookie
  6. auth:元组,支持HTTP认证功能
  7. files:字典类型,传输文件


    image.png
  8. timeout:设定超时时间,以秒为时间
  9. proxies:字典类型,设定访问代理服务器,可以增加登录认证,可以隐藏用户原的IP
  10. allow_redirects:True/False, 默认为True,重定向开关
  11. stream: True/False, 默认为True, 获取内容立即下载开关
  12. verify: True/False, 默认为True, 认证SSL证书开关
  13. cert: 保存本地SSL证书路径

3.2 requests.get(url, params=None, **kwargs)方法,最常用

r=requests.get(url)

requests.get(url)构造一个Request对象
r是返回的一个包含服务器资源的Response对象requests.get(url, params=None, **kwargs)
url:拟获取页面的url链接
params:url中的额外参数,字典或字节流格式,可选
**kwargs:12个控制访问参数,可选

Response对象

>>> import requests
>>>r=requests.get(url)
>>> r
<Response [200]>
>>> type(r)
<class 'requests.models.Response'>
>>> r.headers#headers返回头部信息
{'Cache-Control': 'private, must-revalidate, max-age=0', 'Content-Type': 'text/html; charset=utf-8', 'Content-Encoding': 'gzip', 'Vary': 'Accept-Encoding', 'Server': 'Microsoft-IIS/10.0', 'X-AspNet-Version': '4.0.30319', 'Set-Cookie': 'CallingUrl=http://legacy.tropicos.org/NamePage.aspx?nameid=40033586; path=/', 'X-Powered-By': 'ASP.NET', 'Date': 'Wed, 22 Apr 2020 10:32:02 GMT', 'Content-Length': '21795'}
>>> 
示例

Response的几个属性,要牢记,当爬取的内容是图片视频等的时候,要用r.content来保存

一般流程

例子

两种编码属性的比较

理解requests库的异常

6种连接异常

raise_for_status()方法

通用代码框架,使得爬取变得稳定可靠

3.3 requests.head(url, **kwargs)
3.4 requests.post(url, data=None, json=None, **kwargs)
3.5 requests.put(url, data=None, **kwargs)
3.6 requests.patch(url, data=None, **kwargs)
3.7 requests.delete(url, **kwargs)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容