我正在使用(https://proxy.webshare.io/proxy/rotating?)提供的私有旋转代理,其中对旋转代理的每个请求都会收到一个新IP地址。requests.get('https://httpbin.org/get', headers=headers, proxies=get_proxy())
每当我发出请求时,它每次都会返回一个新IP。但是当使用
session = requests.Session()
session.headers = headers
session.proxies = get_proxy()
session.get('https://httpbin.org/get')
每当我提出请求时,它都会返回相同的IP。在代理的情况下,会话对象的行为与request.get()函数有何不同。
Session
对每个后续请求使用先前设置的变量/值,例如Cookies。如果要更改会话中每个请求的代理,请使用“准备的请求”每次进行设置,或仅将其放入函数中:
def send(session, url):
return session.get(url, proxy=get_proxy())
sess = requests.Session()
sess.headers = headers
resp = send(sess, 'https://httpbin.org/get')
print(resp.status_code)
但是,如果您要隐藏原始IP以便进行抓取或其他操作,则可能不想保留cookie等,因此不应使用会话。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句