From 7ad4f18971330e6a69f99367c4d623962bb40cea Mon Sep 17 00:00:00 2001 From: Yuukiy <76897913+Yuukiy@users.noreply.github.com> Date: Sun, 22 Sep 2024 13:01:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BACloudflare=E6=8B=A6=E6=88=AA=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E7=9A=84=E5=A4=B1=E8=B4=A5=E8=AF=B7=E6=B1=82=E7=BB=99?= =?UTF-8?q?=E5=87=BA=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/base.py | 12 +++++++++--- web/fc2ppvdb.py | 3 +-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/web/base.py b/web/base.py index 56807a8c7..f86e6c91c 100644 --- a/web/base.py +++ b/web/base.py @@ -16,6 +16,7 @@ sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) from core.config import cfg +from web.exceptions import * __all__ = ['Request', 'get_html', 'post_html', 'request_get', 'resp2html', 'is_connectable', 'download', 'get_resp_text'] @@ -111,7 +112,10 @@ def request_get(url, cookies={}, timeout=cfg.Network.timeout, delay_raise=False) """获取指定url的原始请求""" r = requests.get(url, headers=headers, proxies=cfg.Network.proxy, cookies=cookies, timeout=timeout) if not delay_raise: - r.raise_for_status() + if r.status_code == 403 and b'>Just a moment...<' in r.content: + raise SiteBlocked(f"403 Forbidden: 无法通过CloudFlare检测: {url}") + else: + r.raise_for_status() return r @@ -140,7 +144,8 @@ def get_html(url, encoding='utf-8'): html.make_links_absolute(url, resolve_base_href=True) # 清理功能仅应在需要的时候用来调试网页(如prestige),否则可能反过来影响调试(如JavBus) # html = cleaner.clean_html(html) - # lxml.html.open_in_browser(html, encoding=encoding) # for develop and debug + if hasattr(sys, 'javsp_debug_mode'): + lxml.html.open_in_browser(html, encoding=encoding) # for develop and debug return html @@ -150,7 +155,8 @@ def resp2html(resp, encoding='utf-8') -> lxml.html.HtmlComment: html = lxml.html.fromstring(text) html.make_links_absolute(resp.url, resolve_base_href=True) # html = cleaner.clean_html(html) - # lxml.html.open_in_browser(html, encoding=encoding) # for develop and debug + if hasattr(sys, 'javsp_debug_mode'): + lxml.html.open_in_browser(html, encoding=encoding) # for develop and debug return html diff --git a/web/fc2ppvdb.py b/web/fc2ppvdb.py index 9766feb71..2751ea298 100644 --- a/web/fc2ppvdb.py +++ b/web/fc2ppvdb.py @@ -6,9 +6,8 @@ sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) -from web.base import get_html, request_get +from web.base import get_html from web.exceptions import * -from core.config import cfg from core.lib import strftime_to_minutes from core.datatype import MovieInfo