mirror of
https://github.com/searxng/searxng.git
synced 2025-08-14 07:46:44 +02:00
[enh] network: add impersonate parameter
see * https://github.com/lexiforest/curl_cffi * https://github.com/vgavro/httpx-curl-cffi
This commit is contained in:
parent
156d1eb8c8
commit
c2bf60455a
3 changed files with 43 additions and 3 deletions
|
@ -53,6 +53,7 @@ class Network:
|
|||
'max_redirects',
|
||||
'retries',
|
||||
'retry_on_http_error',
|
||||
'impersonate',
|
||||
'_local_addresses_cycle',
|
||||
'_proxies_cycle',
|
||||
'_clients',
|
||||
|
@ -63,6 +64,7 @@ class Network:
|
|||
|
||||
def __init__(
|
||||
# pylint: disable=too-many-arguments
|
||||
# pylint: disable=too-many-positional-arguments
|
||||
self,
|
||||
enable_http=True,
|
||||
verify=True,
|
||||
|
@ -77,6 +79,7 @@ class Network:
|
|||
retry_on_http_error=None,
|
||||
max_redirects=30,
|
||||
logger_name=None,
|
||||
impersonate=None,
|
||||
):
|
||||
|
||||
self.enable_http = enable_http
|
||||
|
@ -91,6 +94,7 @@ class Network:
|
|||
self.retries = retries
|
||||
self.retry_on_http_error = retry_on_http_error
|
||||
self.max_redirects = max_redirects
|
||||
self.impersonate = impersonate
|
||||
self._local_addresses_cycle = self.get_ipaddress_cycle()
|
||||
self._proxies_cycle = self.get_proxy_cycles()
|
||||
self._clients = {}
|
||||
|
@ -185,10 +189,11 @@ class Network:
|
|||
max_redirects = self.max_redirects if max_redirects is None else max_redirects
|
||||
local_address = next(self._local_addresses_cycle)
|
||||
proxies = next(self._proxies_cycle) # is a tuple so it can be part of the key
|
||||
key = (verify, max_redirects, local_address, proxies)
|
||||
key = (verify, max_redirects, local_address, proxies, self.impersonate)
|
||||
hook_log_response = self.log_response if sxng_debug else None
|
||||
if key not in self._clients or self._clients[key].is_closed:
|
||||
client = new_client(
|
||||
self.impersonate,
|
||||
self.enable_http,
|
||||
verify,
|
||||
self.enable_http2,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue