在Python网络申请高级篇中,咱们理解了Requests库根底的应用形式,包含如何发动GET和POST申请,如何解析JSON响应以及如何解决异样。在本文中,咱们将深刻了解Requests库,包含如何发送带参数的申请,如何解决Cookies,如何应用Session对象以及如何设置申请头。
一、发送带参数的申请
咱们能够通过两种形式向URL增加参数,一种是间接在URL中增加,另一种是应用params选项。
import requests# 间接在URL中增加参数response = requests.get('http://httpbin.org/get?name=John&age=23')# 应用params选项增加参数payload = {'name': 'John', 'age': 23}response = requests.get('http://httpbin.org/get', params=payload)
二、解决Cookies
有时,咱们须要在申请中发送或接管cookies。咱们能够通过Requests库的cookies属性来实现。
import requests# 发送cookiescookies = dict(cookies_are='working')response = requests.get('http://httpbin.org/cookies', cookies=cookies)# 接管cookiesresponse = requests.get('http://www.github.com')print(response.cookies['some_cookie'])
三、应用Session对象
在进行多个申请时,咱们可能须要应用到同一个Session。Session对象容许咱们跨申请放弃某些参数。
import requestss = requests.Session()s.get('http://httpbin.org/cookies/set/sessioncookie/123456789')r = s.get('http://httpbin.org/cookies')print(r.text)
在这个例子中,咱们首先创立了一个Session对象s,而后应用s进行了两次申请。因为这两次申请应用了同一个Session,所以第二次申请能够获取到第一次申请设置的cookies。
四、设置申请头
咱们能够通过headers选项设置申请头。
import requestsheaders = {'user-agent': 'my-app/0.0.1'}response = requests.get('http://httpbin.org/get', headers=headers)
这段代码设置了User-Agent申请头,而后发动了一个GET申请。
应用Requests库,咱们能够轻松实现各种简单的网络申请工作。在后续的文章中,咱们将进一步学习Requests库的高级应用形式。