适配更新网站20260919

This commit is contained in:
cwx committed 2026-09-19 21:17:28 +08:00
1 parent 4f542e426b
commit dd708be68e
1 file changed
+8 -18
+8 -18
View File
@@ -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):