Python请求使用保持活动加速
在HTTP协议中,您可以使用保持活动在一个套接字中发送多个请求,然后立即从服务器接收响应,这将显着加快整个过程。 有没有办法在Python请求库中做到这一点? 还是有没有其他的方法来加快这一点,使用请求库?
就在这里。 使用requests.Session
, 它会默认保持活动状态 。
我想我应该包括一个简单的例子:
import logging import requests logging.basicConfig(level=logging.DEBUG) s = requests.Session() s.get('http://httpbin.org/cookies/set/sessioncookie/123456789') s.get('http://httpbin.org/cookies/set/anothercookie/123456789') r = s.get("http://httpbin.org/cookies") print(r.text)
你会注意到这些日志消息发生
INFO:requests.packages.urllib3.connectionpool:Starting new HTTP connection (1): httpbin.org DEBUG:requests.packages.urllib3.connectionpool:"GET /cookies/set/sessioncookie/123456789 HTTP/1.1" 302 223 DEBUG:requests.packages.urllib3.connectionpool:"GET /cookies HTTP/1.1" 200 55 DEBUG:requests.packages.urllib3.connectionpool:"GET /cookies/set/anothercookie/123456789 HTTP/1.1" 302 223 DEBUG:requests.packages.urllib3.connectionpool:"GET /cookies HTTP/1.1" 200 90 DEBUG:requests.packages.urllib3.connectionpool:"GET /cookies HTTP/1.1" 200 90
如果您稍等一会,然后重复最后一次致电
INFO:requests.packages.urllib3.connectionpool:Resetting dropped connection: httpbin.org DEBUG:requests.packages.urllib3.connectionpool:"GET /cookies HTTP/1.1" 200 90
请注意,它将重置丢弃的连接,即重新build立到服务器的连接以发出新的请求。