Java教程

第一周-单元1-Requests库入门

本文主要是介绍第一周-单元1-Requests库入门,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Requests库的主要方法解析

7个主要方法

方法 说明
requests.request() 构造一个请求,支撑以下各方法的基础方法
requests.get() 获取HTML网页的主要方法
 requests.head() 获取HTML网页头部信息的方法
 requests.post() 向HTML网页提交post请求
 requests.put() 向HTML网页提交put请求
 requests.patch() 向HTML网页提交局部修改请求
 requests.delete() 向HTML网页提交删除请求

一、request方法——所有方法的基础

格式:requests.request(method,url,**kwargs)

3个参数——

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

url:拟获取页面的url链接

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

 

method: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)

这7种请求可以用request直接实现,也可以用Requests库的对应方法来实现。这些Requests库的对应方法是基于request函数之上封装的。

 

**kwargs:13个控制访问参数,均为可选

1)params:字典或字节序列,能够增加到url中的参数

例:

kv = {'key1':'value1','key2':'value2'}    #构建一个字典
r = requests.request('GET','http://python123.io/ws',params=kv)   #由于**kwargs是可选参数,需要用命名方法调入参数
print(r.url)

代码输出效果:

http://python123.io/ws?key1=value1&key2=value2

服务器可以接受提交的参数,并根据这些参数筛选部分资源返回

 

2)data:字典、字节序列或文件对象,作为Request的内容。向服务器提供或提交资源。

两个例子:

#例1,向url提交一个键值对
kv = {'key1':'value1';'key2':'value2'}
r = requests.request('POST','http://python123.io/ws',data=kv)
#例2,提交字符串
body = '主体内容'
r = requests.request('POST','http://python123.io/ws',data=body)

 提交的内容不放在url链接里,而是放在url链接所对应位置,作为数据存储

 

3)json:JSON格式的数据,作为Request的内容向服务器提交。

JSON格式在HTTP,html相关的web开发中很常见,也是HTTP最经常使用的数据格式。

例:

kv = {'key1': 'value'}
r = requests.request('POST', 'http://python123.io/ws', json=kv)

 

4)headers:字典类型字段,HTTP定制头。其对应访问url时所发起的HTTP的头字段。

用来定制访问某一个url的HTTP协议头。例:

#修改user-agent字段
hd = {'user-agent':'Chrome/10'}
r = requests.request('POST', 'http://python123.io/ws', headers=hd)

 代码效果:模拟chrome浏览器向服务器发起访问

 

5)cookies:字典或CookieJar,Request中的cookie。用于从HTTP协议中解析cookie。

6)auth:元组类型,支持HTTP认证功能。

cookies和auth是Requests库的高级功能

 

7)files:字典类型,向服务器传输文件时使用。

可以向某一个链接提交某一个文件,例:

fs = {'file': open('data.xls','rb')}
r = requests.request('POST', 'http://python123.io/ws', files=fs)

 8)timeout:设定超时时间,以秒为单位

例:

r = requests.request('GET', 'http://www.baidu.com', timeout=10)

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

例:

pxs = {'http': 'http://user:pass@10.10.10.1:1234''https': 'https://10.10.10.1:4321' }#增加两个代理,第一个增加用户名和密码设置,第二个是代理服务器
r = requests.request('GET', 'http://www.baidu.com', proxies=pxs)

 能够有效防止对爬虫的逆追踪

 

10)allow_redirects:True/False开关,默认为True。重定向开关,表示是否允许对url重定向。

11)stream:True/False开关,默认为True。表示对获取的内容是否立即下载。

12)verify:True/False开关,默认为True。认证SSL证书开关。

13)cert:保存本地SSL证书路径

10~13四个字段对应一些高级功能


二、GET方法

格式:requests.get(url,params=None,**kwargs)

其中,

url:拟获取页面的url链接

params:即request方法里对应的参数

**kwargs:12个控制访问参数,request方法中除params外的其他参数


三、HEAD方法

格式:requests.head(url,**kwargs)

其中,

url:拟获取页面的url链接

**kwargs:13个控制访问参数,与request完全一样


四、POST方法

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

其中,

url:拟获取页面的url链接

data和json同request方法中所对应的参数

**kwargs:11个控制访问参数,与request中的相同


五、PUT方法

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

其中,

url:拟获取页面的url链接

data同request方法中所对应的参数

**kwargs:12个控制访问参数,与request中对应的参数相同


六、PATCH方法

格式:requests.patcht(url,data=None,**kwargs),与PUT方法相似。


七、DELETE方法

格式:requests.delete(url,**kwargs)

其中,

url:拟删除页面的url链接

**kwargs:13个控制访问参数,与request中的相同


<GET方法是最常用的方法>

因为在HTTP协议中,向某一个url提交资源的功能在服务器上是严格受控的。服务器因为安全原因对其他方法进行限制,所以,get()方法最常用。

这篇关于第一周-单元1-Requests库入门的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!