added proxies to default session
This commit is contained in:
1 parent
8e077515ff
commit
3515af6fd8
1 file changed
+10
-7
@@ -22,13 +22,19 @@ def get_default_session(proxies: AioProxies) -> TLSSession:
|
|||||||
caller owns the session lifetime via ``async with``.
|
caller owns the session lifetime via ``async with``.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
proxies: used for rotating proxies inside of send_request
|
proxies: Pool attached to the session as proxy_pool, which send_request
|
||||||
|
rotates through per request. Required so a session can never send
|
||||||
|
un-proxied.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
A TLSSession over a curl_cffi backend with a random impersonation.
|
A TLSSession over a curl_cffi backend with a random impersonation, with
|
||||||
|
the proxy pool attached as proxy_pool.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
return TLSSession(backend=CurlCffi(impersonate=random.choice(CLIENT_IDENTIFIERS)))
|
impersonate = random.choice(CLIENT_IDENTIFIERS)
|
||||||
|
session = TLSSession(backend=CurlCffi(impersonate=impersonate))
|
||||||
|
session.proxy_pool = proxies
|
||||||
|
return session
|
||||||
|
|
||||||
|
|
||||||
async def send_request(
|
async def send_request(
|
||||||
@@ -36,7 +42,6 @@ async def send_request(
|
|||||||
url: str,
|
url: str,
|
||||||
method: str,
|
method: str,
|
||||||
*,
|
*,
|
||||||
proxies: AioProxies,
|
|
||||||
params: dict | None = None,
|
params: dict | None = None,
|
||||||
json_data: dict | None = None,
|
json_data: dict | None = None,
|
||||||
data: dict | None = None,
|
data: dict | None = None,
|
||||||
@@ -56,8 +61,6 @@ async def send_request(
|
|||||||
session: The TLSSession to send through.
|
session: The TLSSession to send through.
|
||||||
url: Request URL.
|
url: Request URL.
|
||||||
method: HTTP method.
|
method: HTTP method.
|
||||||
proxies: Proxy pool (required); the next proxy is drawn per call and
|
|
||||||
applied to both http and https.
|
|
||||||
params: Query parameters.
|
params: Query parameters.
|
||||||
json_data: JSON body. A dict here is sent as a JSON body.
|
json_data: JSON body. A dict here is sent as a JSON body.
|
||||||
data: Alternative body. Note aioweb routes any dict or list to a JSON
|
data: Alternative body. Note aioweb routes any dict or list to a JSON
|
||||||
@@ -74,7 +77,7 @@ async def send_request(
|
|||||||
AiowebError: On a non-2xx response or after all retries fail.
|
AiowebError: On a non-2xx response or after all retries fail.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
proxy_url = proxies.next().url()
|
proxy_url = session.proxy_pool.next().url()
|
||||||
proxy = {"http": proxy_url, "https": proxy_url}
|
proxy = {"http": proxy_url, "https": proxy_url}
|
||||||
|
|
||||||
body = json_data if json_data is not None else data
|
body = json_data if json_data is not None else data
|
||||||
|
|||||||
Reference in new issue
Block a user