IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 爬虫Requests库入门及HTTP协议 -> 正文阅读

[网络协议]爬虫Requests库入门及HTTP协议

?HTTP协议

HTTP,Hypertext Transfer PRotocol,超文本传输协议

HTTP是一个基于"请求于响应"模式的,无状态的应用层协议

HTTP协议采用URL作为定位网络资源的标识

URL格式:http://host[:port][path]

host:合法的Internet主机域名或IP地址

port:端口号,缺省端口为80

path:请求资源的路径

HTTP URL的理解:

URL是通过HTTP协议存取资源的Internet路径,一个URL对应一个数据资源

???????????????????????????? HTTP协议对资源的操作

方法

说明

GET

请求获取URL位置的资源

HEAD

请求获取URL位置资源的响应消息报告,即获得该资源的头部信息

POST

请求向URL位置的资源后附加新的数据

PUT

请求向URL位置存储一个资源,覆盖原URL位置的资源

PATCH

请求局部更新UR位置的资源,即改变该户=处资源的的部分内容

DELETE

请求删除URL位置存储的资源

?requess库的7个主要方法:

方法

说明

requests.request()

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

requests.get()

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

requests.head()

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

requests.post()

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

requests.put()

向HTML网页提交跑put请求的方法,对应于HTTP的put

requests.patch()

向HTML网页提交局部修改请求,对应于HTTP的patch

requests.delete()

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

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

method:请求方式,对应get/put/post等7种

????????r=requests.request('GET',url,**kwargs)

????????r=requests.request('HEAD',url,**kwargs)

????????r=requests.request('POST',url,**kwargs)

????????r=requests.request('PUT',url,**kwargs)

????????r=requests.request('PATCH',url,**kwargs)

????????r=requests.request('DELETE',url,**kwargs)

????????r=requests.request('OPTIONS',url,**kwargs)

url:拟获取页面的url链接

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

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

?? data: 字典或字节序列或文件对象,作为Request内容

? ?json:JSON格式的数据,作为Request的内容

? headers:字典,HTTP定制头

?? ?cookies:字典或CookieJar,Request中的cookie

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

files:字典类型,传输文件

timeout:设超时时间

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

allow_redirects:True/False,默认为True,重定向开关

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

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

cert:本地SSl证书路径

r=requests.get(url,params=None,**kwargs)

url: 拟获取页面的url链接

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

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

requests.head(url,**kwargs)

url: 拟获取页面的url链接

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

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

url: 拟获取页面的url链接

?data: 字典或字节序列或文件对象,作为Request内容

json:JSON格式的数据,作为Request的内容

**kwargs:11个控制访问的参数

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

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

requests.delete(url,**kwargs)

?????????????????????????????????????????????????Response对象的属性

属性

说明

r.status_code

HTTP请求的返回状态,200表示连接成功,404表示失败

r.text

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

r.encoding

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

r.apparent_encoding

从内容中分析出的响应内容编码方式

r.content

HTTP响应内容的二进制

r.encoding:如果header中不存在charset,则认为编码为ISO-8859-1

r.apparent_encoding:根据网页内容分析出编码方式

????????????????????????????????????????理解Requests库的异常

异常

说明

requests.ConnectionError

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

requests.HTTPError

HTTP错误异常

requests.URLRequired

URL缺失异常

requests.TookManyRedirects

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

requests.ConnectTimeout

连接远程服务器超时异常

requests.Timeout

请求URL超时,产生超时异常

r.raise_for_status() :? ? ? ? ? ? 如果不是200,产生异常requests.HTTpError

爬取网页的通用代码?

?

?#要注意网络连接有风险,异常处理很重要

使用上述代码能够有效的处理网络连接异常?

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-11-14 22:06:46  更:2021-11-14 22:06:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:54:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码