一、requests库的介绍
二、requests库的例子与特性
- requests最大的特性就是其风格的简单直接优雅。无论是请求方法,还是响应结果的处理,还有cookies,url参数,post提交数据,都体现出了这种风格。
- 示例:
import requests
r = requests.get(url='http://www.itwhy.org') # 最基本的GET请求
print(r.status_code) # 获取返回状态
r = requests.get(url='http://dict.baidu.com/s', params={'wd':'python'}) #带参数的GET请求
print(r.url)
print(r.text) #打印解码后的返回数据
三、requests库发送请求时的请求方法
- requests的请求不再像urllib一样需要去构造各种request、opener和handler,使用requests数据包构造并发送相应的请求,并在其中传入需要的参数即可。
- 每一个请求方法都有一个对应的API,比如GET请求就可以使用get()方法;而POST请求就可以使用post()方法,并且将需要提交的数据传递给data参数即可,就可以在访问后的界面显示出来。
import requests
requests.get('http://www.dict.baidu.com/s', params={'wd': 'python'}) #GET参数实例
requests.post('http://www.itwhy.org/wp-comments-post.php', data={'comment': '测试POST'}) #POST参数实例
四、requests库发送请求时传递URL参数
-
将URL参数构造为一个字典对象,其中键对应参数名,值对应参数值。
-
可以查看URL参数是否构造正确:
-
遇到相同的url参数名,但有不同的参数值,而python的字典又不支持键的重名,那么我们可以把键的值用列表表示:
五、requests库发送请求时自定义Headers(请求头)
-
如果想自定义请求的headers,同样的将字典数据传递给headers参数。
-
requests中自定义Cookies也不用再去构造CookieJar对象,直接将字典递给cookies参数。
六、requests库发送请求时设置代理
七、requests库发送请求时进行重定向
- 我们常常会遇到状态码是3开头的重定向问题,在requests中是默认开启允许重定向的,即遇到重定向时,会自动继续访问。
-
allow_redirects默认为True。下面是不允许重定向。
八、requests库发送请求时设置超时
-
设置访问超时,设置timeout参数即可(秒为单位)。