在前面一节我们了解了 Requests 的基本用法,如基本的 GET、POST 请求以及 Response 对象的用法,本节我们再来了解下 Requests 的一些高级用法,如文件上传,代理设置,Cookies 设置等等。
我们知道 Reqeuests 可以模拟提交一些数据,假如有的网站需要我们上传文件,我们同样可以利用它来上传,实现非常简单,实例如下:
import requests
files = {'file': open('favicon.ico', 'rb')}
r = requests.post('http://httpbin.org/post', files=files)
print(r.text)
在上面一节中我们下载保存了一个文件叫做 favicon.ico,这次我们用它为例来模拟文件上传的过程。需要注意的是,favicon.ico 这个文件需要和当前脚本在同一目录下。如果有其它文件,当然也可以使用其它文件来上传,更改下名称即可。
运行结果如下:
{
"args": {},
"data": "",
"files": {
"file": "data:application/octet-stream;base64,AAAAAA...="
},
"form": {},
"headers": {
"Accept": "**",
"Accept-Encoding": "gzip, deflate",
"Connection": "close",
"Content-Length": "11",
"Content-Type": "application/x-www-form-urlencoded",
"Host": "httpbin.org",
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36"
},
"json": null,
"origin": "182.32.203.166",
"url": "http://httpbin.org/post"
}
Python资源分享qun 784758214 ,内有安装包,PDF,学习视频,这里是Python学习者的聚集地,零基础,进阶,都欢迎
可以看到我们达到了同样的 POST 请求效果。
有了 Request 这个对象,我们就可以将一个个请求当做一个独立的对象来看待,这样在进行队列调度的时候会非常方便,后面我们会有一节使用它来构造一个 Request 队列。
本节讲解了 Requests 的一些高级用法,这些用法在后面实战部分会经常用到,需要熟练掌握。
更多的用法可以参考 Requests 的官方文档:http://docs.python-requests.org/。