anti-cf 1.0.2__py3-none-any.whl → 1.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
anti_cf/_persistent_session.py
CHANGED
@@ -47,10 +47,11 @@ class PersistentSession(Session):
|
|
47
47
|
super().__init__()
|
48
48
|
|
49
49
|
self._load_cookies()
|
50
|
-
ensure_flaresolverr_running()
|
51
50
|
self.set_user_agent()
|
51
|
+
self._flaresolverr_initialized = False
|
52
52
|
|
53
53
|
def _get_user_agent(self) -> str:
|
54
|
+
# Try FlareSolverr first, but don't start it if not running
|
54
55
|
flaresolverr_settings = get_flaresolverr_settings()
|
55
56
|
if flaresolverr_settings is not None:
|
56
57
|
return flaresolverr_settings["userAgent"]
|
@@ -87,6 +88,12 @@ class PersistentSession(Session):
|
|
87
88
|
self.save_cookies()
|
88
89
|
return response
|
89
90
|
|
91
|
+
def _ensure_flaresolverr_initialized(self) -> None:
|
92
|
+
"""Ensure FlareSolverr is ready when needed."""
|
93
|
+
if not self._flaresolverr_initialized:
|
94
|
+
ensure_flaresolverr_running()
|
95
|
+
self._flaresolverr_initialized = True
|
96
|
+
|
90
97
|
def get(self, url: str | bytes, *, try_with_cloudflare: bool = False, _cloudflare_counter: int = 0, **kwargs: object) -> Response | None:
|
91
98
|
if not try_with_cloudflare or "cf_clearance" in self.cookies:
|
92
99
|
try:
|
@@ -107,10 +114,10 @@ class PersistentSession(Session):
|
|
107
114
|
else:
|
108
115
|
logger.warning("Cloudflare detected, but `try_with_cloudflare` wasn't set to True!")
|
109
116
|
|
117
|
+
self._ensure_flaresolverr_initialized()
|
118
|
+
|
110
119
|
try:
|
111
120
|
self._get_url_via_flaresolverr(url)
|
112
|
-
# After the url is retrieved from the flaresolverr proxy, it's not necessarily the one we want
|
113
|
-
# --> So we'll re-request it here:
|
114
121
|
return super().get(url, **kwargs)
|
115
122
|
except Exception:
|
116
123
|
logger.error("FlareSolverr didn't solve it :(")
|
@@ -129,8 +136,8 @@ class PersistentSession(Session):
|
|
129
136
|
dta = response.json()
|
130
137
|
for cookie in dta["solution"]["cookies"]:
|
131
138
|
self.cookies.set(
|
132
|
-
name=cookie["name"],
|
133
|
-
value=cookie["value"],
|
139
|
+
name=cookie["name"],
|
140
|
+
value=cookie["value"],
|
134
141
|
version=cookie.get("version", 0),
|
135
142
|
port=cookie.get("port", None),
|
136
143
|
domain=cookie.get("domain", ""),
|
@@ -0,0 +1,7 @@
|
|
1
|
+
anti_cf/__init__.py,sha256=ZFXXzfWeiBqKC56vdyod1yXj5_Kg4NXJeTejs2WoEEU,71
|
2
|
+
anti_cf/_constants.py,sha256=xFIXkeBVkuHsTQKQU4p2leJkySHdJ_6xApgIoVrBWHA,262
|
3
|
+
anti_cf/_flaresolverr.py,sha256=vOuut3fH1CstumQrNyIhm7B58ybLCSPUaK5NDTiQwj8,1633
|
4
|
+
anti_cf/_persistent_session.py,sha256=UqDLEMrZ4ybJGWySn2AIDOlSCz43kzx14hlZNsuzjU4,5853
|
5
|
+
anti_cf-1.1.0.dist-info/METADATA,sha256=vmHncM9A664cySSKGwQ4aK9m_SqSZnw8GJFIvSnx9pM,3187
|
6
|
+
anti_cf-1.1.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
7
|
+
anti_cf-1.1.0.dist-info/RECORD,,
|
anti_cf-1.0.2.dist-info/RECORD
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
anti_cf/__init__.py,sha256=ZFXXzfWeiBqKC56vdyod1yXj5_Kg4NXJeTejs2WoEEU,71
|
2
|
-
anti_cf/_constants.py,sha256=xFIXkeBVkuHsTQKQU4p2leJkySHdJ_6xApgIoVrBWHA,262
|
3
|
-
anti_cf/_flaresolverr.py,sha256=vOuut3fH1CstumQrNyIhm7B58ybLCSPUaK5NDTiQwj8,1633
|
4
|
-
anti_cf/_persistent_session.py,sha256=z4cG16lbPLIDhAIGgFoCufI83xHZzHIT4vfW4303-mI,5654
|
5
|
-
anti_cf-1.0.2.dist-info/METADATA,sha256=_VOtcWdnVaTxElWTPNKe3KEZinIWn-ul_hrDUk3TzQ0,3187
|
6
|
-
anti_cf-1.0.2.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
|
7
|
-
anti_cf-1.0.2.dist-info/RECORD,,
|