From dd708be68e820dc565a2e537314448f398c62891 Mon Sep 17 00:00:00 2001 From: caiwx86 Date: Sat, 19 Sep 2026 21:17:28 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=82=E9=85=8D=E6=9B=B4=E6=96=B0=E7=BD=91?= =?UTF-8?q?=E7=AB=9920260919?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/sites/configs/rouman.py | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/src/sites/configs/rouman.py b/src/sites/configs/rouman.py index da433f3..c54c9cf 100644 --- a/src/sites/configs/rouman.py +++ b/src/sites/configs/rouman.py @@ -24,35 +24,25 @@ class RoumanSite(BaseSite): tree = etree.HTML(html) image_urls_str = [] json_all="" + img_prefix = [ ".jpg" , ".png" , ".webp"] for data_json in tree.xpath('//script/text()'): - if str(data_json).startswith('self.__next_f.push([1,'): - data_json = data_json.replace('self.__next_f.push([1,', '') - data_json = data_json.replace('])', '') + if any(ext in data_json for ext in img_prefix): data_json = data_json.replace('\\n', '') data_json = data_json.replace('\\', '') - if str(data_json).startswith('"'): - data_json=data_json[1:] - if str(data_json).endswith('"'): - data_json=data_json[0:-1] - #if str(data_json).endswith('"') and not str(data_json).endswith('.jpg"') and not str(data_json).endswith('.webp"') and not str(data_json).endswith('ind\"'): - #if str(data_json).endswith('.jpg"') and not str(data_json).endswith('.webp"') and not str(data_json).endswith('ind\"'): - # data_json=data_json[0:-2] - json_all=json_all+data_json - #if "imageUrl" in json_all: - # image_urls_str = re.findall(r'"imageUrl":"(https?://[^"]+)"', json_all) - + index_chapter = data_json.index('chapter:') + 8 + index_cover = data_json.index('coverUrl:') - 9 + json_all = data_json[index_chapter:index_cover] # 方法3:使用更精确的正则表达式,确保imageUrl和ind在同一对象中 - pattern_advanced = r'\{[^{}]*"imageUrl":"([^"]+)"[^{}]*"ind":(\d+)[^{}]*\}' + pattern_advanced = r'https://[^"\s]+?\.(?:jpe?g|png|webp)(?:[?#][^"\s]*)?' matches_advanced = re.findall(pattern_advanced, json_all) # 检查图片数量是否完整 - if len(matches_advanced)-1 != int(matches_advanced[-1][1]) or len(matches_advanced) == 0: + if len(matches_advanced) == 0: print(f"{chapter_url} \n图片数量不完整或为0") exit() ver_count = 0 image_urls_str = [] - for image_url, ind in matches_advanced: + for image_url in matches_advanced: if str(image_url).startswith("http") and image_url.split(".")[-1] in [ "jpg" , "png" , "webp"]: - #print(f"imageUrl: {image_url}, ind: {ind}") image_urls_str.append(image_url) ver_count += 1 if ver_count != len(matches_advanced):