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)
|
|
|
|
|
|
|
| 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)
|
|
|
|
|
|
|
| 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)
|
|
|
|
|
|
|
| 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)
|
|
|
|
|
|
|
| 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)
|