我将如何配置Session()
对象以便通过它的所有请求都使用相同的主机和端口?
目前我会做以下事情:
urls = [f'https://somehost.com:1234/query?page={i}' for i in range(10)]
s = requests.Session()
for url in urls:
r = s.get(url)
有没有办法显式设置持久连接的主机和端口?例如:
s = requests.Session()
s.host = 'https://somehost.com'
s.port = '1234'
来自requests
有关会话的文档:
Session 对象允许您跨时间保存某些参数
要求。它还会在所有发出的请求中保留 cookie
Session 实例,并将使用 urllib3 的连接池。因此,如果
您正在向同一主机(底层 TCP)发出多个请求
连接将被重用,这可能会导致显着的
性能提高(请参阅 HTTP 持久连接)。
所以当你每次都给出网址时。在底层,请求不会为每个请求创建新的 TCP 套接字连接。它将重用连接池中到该主机和端口的 TCP 套接字连接。
会话背后的主要思想是在每个请求之间共享参数和 cookie,而不必在每个请求中单独设置它们。在幕后它会保持连接。但您仍然需要在每次调用中提供完整的 URL
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)