一、 request库的安装
在命令行输入pip install requests进行安装
随后进行调用,发现成功
二、 request库的最常用方法:get 方法
r= request.get(url)包括两个(对象)请求,其中一个为request请求,即向服务器请求资源的request对象,以及Response请求,即包含从服务器返回的所有资源
完整标准格式:request.get(url,params=None,**kwargs)
其中,url为获取页面的链接,params为额外参数,字典或者字节流格式,其为可选。**kwargs为12个控制访问的参数。
Response对象:
访问百度主页,状态码为200,即表示正常。类型为response。也包括了我们请求的request信息。
可修改r.encoding的格式,而不使用其本身自定义的格式:
如果header中不存在charset字段,则默认编码为ISO-8859—1,encoding并未分析内容,但是apparent_encoding分析了其中的内容。
三、 爬取网页的通用代码框架
def getHTMLText(url):
try:
r=requests.get(url,timeout=30) #得到网页,设定时间
r.raise_for_status()#如果状态不是200,引发HTTPError异常
r.encoding=r.apparent_encoding#替代,使得返回网页的内容是正确的
return r.text
except;
return “产生异常”
ps. If __name__==”__main__”的含义
四、 HTTP 协议和request库的主要方法
Hypertext Transfer Protocol,超文本传输协议。
基于“请求和相应”模式的、无状态的应用层协议。
即用户发起请求,进行相应。无状态即表示第一次响应和第二次响应之间没有关系。
url为作为定位网络资源的标识,格式http://host[:post][path]
host为合法的主机域名或者ip地址
post端口号,path为路径。
注:理解patch和put的区别:
假设url位置有一组数据,包括name、id等。
采用patch,仅向url提交name的局部更新申请(节省网络带宽)
采用put,必须将所有的20个字段一并提交到url,未提交字段将会被删除。
Head方法即为展示头部内容,用较少流量获取资源
Post,键值对默认存于表单。若提交data,则存于data。
五、 request主要方法解析
requests.request(method,url,**kwargs)
method即为包括get,head,post,put,patch,delete,options(获取和客户端打交道的参数)
**kwargs访问控制的参数,均为可选项。
1、Params:(修改)字典或字节序列,作为参数(键值对)增加到url中
2、Data:字典、字节序列或文件对象,作为request内容
存到链接下,并不是直接存到url里面
3、json 作为request内容
4、headers字典、HTTP定制头。头字段
模拟浏览器、
5、cookies 从HTTP解读字典格式
6、auth字段,元组类型,支持HTTP认证
7、files 字典类型,传输文件:
向链接提交文件
8、timeout 时间内未返回产生timeout
9、proxies:字典类型,设定访问服务器,增加登录认证:
举例:
即,使用第一行的用户名,以及第二行的IP地址进行访问