Karim shoair commited on
Commit
c7e573a
·
1 Parent(s): d653fd5

fix(browsers): solve a bug with setting referer on the request level

Browse files
scrapling/core/_types.py CHANGED
@@ -19,6 +19,7 @@ from typing import (
19
  Set,
20
  Literal,
21
  Optional,
 
22
  Pattern,
23
  Sequence,
24
  Tuple,
 
19
  Set,
20
  Literal,
21
  Optional,
22
+ Iterator,
23
  Pattern,
24
  Sequence,
25
  Tuple,
scrapling/engines/_browsers/_controllers.py CHANGED
@@ -108,8 +108,11 @@ class DynamicSession(SyncSession, DynamicSessionMixin):
108
  if not self._is_alive: # pragma: no cover
109
  raise RuntimeError("Context manager has been closed")
110
 
 
111
  referer = (
112
- generate_convincing_referer(url) if (params.google_search and "referer" not in self._headers_keys) else None
 
 
113
  )
114
 
115
  page_info = self._get_page(params.timeout, params.extra_headers, params.disable_resources)
@@ -240,8 +243,11 @@ class AsyncDynamicSession(AsyncSession, DynamicSessionMixin):
240
  if not self._is_alive: # pragma: no cover
241
  raise RuntimeError("Context manager has been closed")
242
 
 
243
  referer = (
244
- generate_convincing_referer(url) if (params.google_search and "referer" not in self._headers_keys) else None
 
 
245
  )
246
 
247
  page_info = await self._get_page(params.timeout, params.extra_headers, params.disable_resources)
 
108
  if not self._is_alive: # pragma: no cover
109
  raise RuntimeError("Context manager has been closed")
110
 
111
+ request_headers_keys = {h.lower() for h in params.extra_headers.keys()} if params.extra_headers else set()
112
  referer = (
113
+ generate_convincing_referer(url)
114
+ if (params.google_search and "referer" not in request_headers_keys)
115
+ else None
116
  )
117
 
118
  page_info = self._get_page(params.timeout, params.extra_headers, params.disable_resources)
 
243
  if not self._is_alive: # pragma: no cover
244
  raise RuntimeError("Context manager has been closed")
245
 
246
+ request_headers_keys = {h.lower() for h in params.extra_headers.keys()} if params.extra_headers else set()
247
  referer = (
248
+ generate_convincing_referer(url)
249
+ if (params.google_search and "referer" not in request_headers_keys)
250
+ else None
251
  )
252
 
253
  page_info = await self._get_page(params.timeout, params.extra_headers, params.disable_resources)
scrapling/engines/_browsers/_stealth.py CHANGED
@@ -195,8 +195,11 @@ class StealthySession(SyncSession, StealthySessionMixin):
195
  if not self._is_alive: # pragma: no cover
196
  raise RuntimeError("Context manager has been closed")
197
 
 
198
  referer = (
199
- generate_convincing_referer(url) if (params.google_search and "referer" not in self._headers_keys) else None
 
 
200
  )
201
 
202
  page_info = self._get_page(params.timeout, params.extra_headers, params.disable_resources)
@@ -410,8 +413,11 @@ class AsyncStealthySession(AsyncSession, StealthySessionMixin):
410
  if not self._is_alive: # pragma: no cover
411
  raise RuntimeError("Context manager has been closed")
412
 
 
413
  referer = (
414
- generate_convincing_referer(url) if (params.google_search and "referer" not in self._headers_keys) else None
 
 
415
  )
416
 
417
  page_info = await self._get_page(params.timeout, params.extra_headers, params.disable_resources)
 
195
  if not self._is_alive: # pragma: no cover
196
  raise RuntimeError("Context manager has been closed")
197
 
198
+ request_headers_keys = {h.lower() for h in params.extra_headers.keys()} if params.extra_headers else set()
199
  referer = (
200
+ generate_convincing_referer(url)
201
+ if (params.google_search and "referer" not in request_headers_keys)
202
+ else None
203
  )
204
 
205
  page_info = self._get_page(params.timeout, params.extra_headers, params.disable_resources)
 
413
  if not self._is_alive: # pragma: no cover
414
  raise RuntimeError("Context manager has been closed")
415
 
416
+ request_headers_keys = {h.lower() for h in params.extra_headers.keys()} if params.extra_headers else set()
417
  referer = (
418
+ generate_convincing_referer(url)
419
+ if (params.google_search and "referer" not in request_headers_keys)
420
+ else None
421
  )
422
 
423
  page_info = await self._get_page(params.timeout, params.extra_headers, params.disable_resources)