
在前一节中,我们了解了requests的基本用法,如基本的GET、POST请求以及Response对象。本节中,我们再来了解下requests的一些高级用法,如文件上传、cookie设置、代理设置等。
1. 文件上传
我们知道requests可以模拟提交一些数据。假如有的网站需要上传文件,我们也可以用它来实现,这非常简单,示例如下:
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"
}可以看到,我们达到了同样的POST请求效果。
有了Request这个对象,就可以将请求当作独立的对象来看待,这样在进行队列调度时会非常方便。后面我们会用它来构造一个Request队列。
本节讲解了requests的一些高级用法,这些用法在后面实战部分会经常用到,需要熟练掌握。更多的用法可以参考requests的官方文档:http://docs.python-requests.org/。
python学习网,大量的免费python视频教程,欢迎在线学习!
本文转自:https://cuiqingcai.com/5523.html