一、requests库入门

(一)requests库的get()方法
1.r (response)= request.get(url)
Request.get(url,params = None,**kwargs)
Url:以获取页面的URL链接
Params:URL中的额外参数,字典或字节流格式,可选
**kwargs:12个控制访问的参数
Ps:get方法使用request方法封装
2.Response对象的属性
r.status_code HTTP请求的返回状态,200表示连接成功,404表示失败
r.text HTTP响应内容的字符串形式,即,URL对应的页面内容
r.encoding 从HTTPheader中猜测的响应内容编码方式
r.apparenr_encoding从内容中分析出的响应内容编码方式(备选编码方式)
r.content HTTP响应内容的二进制形式
3.实例
以百度为例
在这里插入图片描述
在这里插入图片描述
r.encoding 从HTTPheader中猜测的响应内容编码方式
r.apparenr_encoding从内容中分析出的响应内容编码方式(备选编码方式)
Ps r.encoding:如果header中不存在charset,则认为编码为SOI-8859-1。
r.apparenr_encoding:根据网页内容分析出编码方式。
(二)爬取网页的通用代码框架
1.理解requests库的异常
request.ConnectionError 网络连接错误异常,如dns查询失败、拒绝连接等
request.HTTPError HTTP错误异常
request.URLRequired URL异常缺失
request.TooManyRedirects 超过最大重定向次数,产生重定向异常。
request.Timeout 请求URL超时,产生超时异常
r.raise_for_status() 如果不是200,产生异常request.HTTPError
2.爬取网页的通用代码框架

import requests

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

if __name__ == "__main__":
    url = "//www.baidu.com"
    print(getHTMLText(url))

运行结果:
在这里插入图片描述
(三)HTTP协议及Requests库方法
1.Requests库的7个主要方法
requests.requests() 构造一个请求,支撑以下各种方法的基础
requests.get() 获取HTML网页的主要方法
requests.head() 获取HTML网页头信息的方法
requests.post() 向HTML网页提交POST请求的方法
requests.put() 向HTML网页提交PUT请求的方法
requests.patch() 向HTML网页提交局部修改请求
requests.delete() 向HTML页面提交删除请求
2.HTTP协议
① HTTP,Hypertext Transfer Protocol,超文本传输协议
HTTP是一个基于“请求与响应”模式的、无状态的应用层协议
HTTP协议采用URL作为定位网络资源的标识
URL格式:http://host[:post][path]
host:合法的Internet主机域名或IP地址
port:端口号,缺省端口为80
path:请求资源的路径
举例:http://www.bit.edu.cn 北京理工大学校园网首页
http://220.181.111.118/duty IP主机上duty里的资源
HTTP URL的理解:URL是通过http协议存取资源的Internet路径,一个URL对应一个数据资源。
② HTTP协议对资源的操作
GET 请求获得URL位置的资源(获取)
HEAD 请求获得URL位置资源的响应消息报告,即获得该资源的头部信息(头部)
POST 请求向URL位置的资源后附加新的数据
PUT 请求向URL位置存储一个资源,覆盖URL位置的资源
PATCH 请求局部更新URL位置的资源,即改变改处资源的部分内容
DELETE 请求删除URL位置存储的资源
理解PATCH和PUT的区别
假设URL位置有一组数据UserInfo,包括UserID、UserName等20个字段。需求:用户修改了UserName,其他不变
采用PATCH,仅向URL提交UserName的局部更新请求
采用PUT,必须将所有20个字段一并提交URL,未提交字段删除
PATCH节省网络带宽
Request库的head()方法:头部信息内容,少量网络流量获取概要信息
Request库的post()方法:post字典——表单 字符串——data
Request库的patch()方法:覆盖原有信息
(四)Requests库主要方法解析
1.Requests库的7个主要方法
(1)requests.requests() 构造一个请求,支撑以下各种方法的基础
requests.requests(method,url,**kwargs)
Url:拟获取url链接
method:请求方式 7
r = requeste.request(‘GET’,url,**kwargs)——requests.get
r = requeste.request(‘HEAD’,url,**kwargs)
r = requeste.request(‘POST’,url,**kwargs)
r = requeste.request(‘PUT’,url,**kwargs)
r = requeste.request(‘PATCH’,url,**kwargs)
r = requeste.request(‘DELETE’,url,**kwargs)
r = requeste.request(‘OPTIONS’,url,**kwargs)向服务器获取参数
**kwargs:控制访问的参数,均为可选项 13
params:字典或字节序列,作为参数增加到url中(url修改)
Data:字典、字节序列或文件对象,作为request的内容
Json:作为request的内容
Headers:字典,HTTP定制头
Cookies:字典或cookiejar,request中的cookie
Auth:元组,支持HTTP认证功能
Files:字典类型,传输文件(向链接提交文件)
Timeout:设定超时时间
Proxies:字典类型,设定访问代理服务器,可以增加登录认证(隐藏原IP)
Allow_redirects:Ture/False,默认为true,重定向开关
Stream:Ture/False,默认为true,获取内容立即下载开关
Verify:Ture/False,默认为true,认证ssl证书开关
Cert:本地ssl证书路径
(2)requests.get() 获取HTML网页的主要方法(最常使用)
(3)requests.head() 获取HTML网页头信息的方法
(4)requests.post() 向HTML网页提交POST请求的方法
(5)requests.put() 向HTML网页提交PUT请求的方法
(6)requests.patch() 向HTML网页提交局部修改请求
(7)requests.delete() 向HTML页面提交删除请求
(五)单元小结
1.7个主要方法
requests.requests() 构造一个请求,支撑以下各种方法的基础
requests.get() 获取HTML网页的主要方法
requests.head() 获取HTML网页头信息的方法
requests.post() 向HTML网页提交POST请求的方法
requests.put() 向HTML网页提交PUT请求的方法
requests.patch() 向HTML网页提交局部修改请求
requests.delete() 向HTML页面提交删除请求
2.爬取网页的通用代码框架

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值