2 实例引入
- urllib库中的urlopen方法实际上是以GET方式请求网页,requests库中响应的方法就是get方法,是不是感觉表意更直接一些?下面通过实例来看一下:
import requests
r = requests.get('http://www.baidu.com')
print(type(r))
print(r.status_code)
print(type(r.text))
print(r.text[0:100])
print(r.cookies)
- 运行结果如下:
<class 'requests.models.Response'>
200
<class 'str'>
<!DOCTYPE html><!--STATUS OK--><html><head><meta http-equiv="Content-Type" content="text/html;charse
<RequestsCookieJar[<Cookie BIDUPSID=59D3DFB0D18E1F4B3AFAC45C1C71B679 for .baidu.com/>, <Cookie PSTM=1789207585 for .baidu.com/>, <Cookie H_PS_PSSID=65592_72950_73012_73052_73324_73288_73371_73695_73797_73793_73789_73813_73883_73887_73900_73910_73920_73922_73946_73952_73961_73978_74010_74038_74172_74185_74378_74384_74236_74245_74321_74342_74210_74200_74279_74294_74465_74369_74491_74418_74387_74422_74397_74407_74501_74508_74511_74524_74537_74531_74545_74549_74484_74592_74602_74658_74669_74666_74671_74687_74716_74751_74663_74746_74673_74793_74801_74810_74829_74836_74838_74840 for .baidu.com/>, <Cookie BAIDUID=59D3DFB0D18E1F4B3AFAC45C1C71B679:FG=1 for .baidu.com/>, <Cookie BAIDUID_BFESS=59D3DFB0D18E1F4B3AFAC45C1C71B679:FG=1 for .baidu.com/>, <Cookie BDSVRTM=3 for www.baidu.com/>, <Cookie BD_HOME=1 for www.baidu.com/>]>
- 这里我们调用了get方法实现了与urlopen方法相同的操作,返回一个Response对象,并将其存放在变量r中,然后分别输出了响应的类型、状态码、响应体的类型、内容,以及Cookie。
- 观察运行结果可以发现,返回的响应类型是requests.models.Response,响应体的类型 是字符串str,Cookie的类型是RequestsCookieJar.
- 使用get方法成功实现一个GET请求算不了什么,requests库更方便之处在于其他请求类型依然可以用一句话完成,例如:
import requests
r = requests.get('http://www.baidu.com')
r = requests.post('http://www.baidu.com')
r = requests.put('http://www.baidu.com')
r = requests.delete('http://www.baidu.com')
r = requests.patch('http://www.baidu.com')
- 这里分别用post、put、delete等方法实现了POST、PUT、DELETE等请求。是不是比urllib库简单太多了?
心揣信念,梦想就在脚下!

浙公网安备 33010602011771号