From d9b216d3dd1145e92714bee4089bdcee0706eb78 Mon Sep 17 00:00:00 2001 From: Harold <8866033@gmail.com> Date: Mon, 20 Apr 2026 11:02:32 +0800 Subject: [PATCH] feat: finalize zxzj spider --- py/tests/test_在线之家.py | 11 +++ py/在线之家.py | 141 +++++++++++++++++++++++++++----------- 2 files changed, 112 insertions(+), 40 deletions(-) diff --git a/py/tests/test_在线之家.py b/py/tests/test_在线之家.py index 1e51e71..0e68fc2 100644 --- a/py/tests/test_在线之家.py +++ b/py/tests/test_在线之家.py @@ -207,6 +207,17 @@ class TestZXZJSpider(unittest.TestCase): {"parse": 0, "jx": 0, "playUrl": "", "url": "https://pan.quark.cn/s/demo", "header": {}}, ) + def test_home_content_keeps_reference_filter_values_for_movie_and_anime(self): + filters = self.spider.homeContent(False)["filters"] + movie_filters = filters["1"] + anime_filters = filters["6"] + self.assertIn({"n": "喜剧", "v": "喜剧"}, movie_filters[0]["value"]) + self.assertIn({"n": "欧美", "v": "欧美"}, movie_filters[1]["value"]) + self.assertIn({"n": "2025", "v": "2025"}, movie_filters[2]["value"]) + self.assertEqual(movie_filters[3]["value"][1], {"n": "人气", "v": "hits"}) + self.assertIn({"n": "国产", "v": "国产"}, anime_filters[1]["value"]) + self.assertIn({"n": "热血", "v": "热血"}, anime_filters[0]["value"]) + if __name__ == "__main__": unittest.main() diff --git a/py/在线之家.py b/py/在线之家.py index d39f23c..05d0d48 100644 --- a/py/在线之家.py +++ b/py/在线之家.py @@ -34,6 +34,40 @@ class Spider(BaseSpider): {"n": "人气", "v": "hits"}, {"n": "评分", "v": "score"}, ] + common_years = [ + {"n": "全部", "v": ""}, + {"n": "2026", "v": "2026"}, + {"n": "2025", "v": "2025"}, + {"n": "2024", "v": "2024"}, + {"n": "2023", "v": "2023"}, + {"n": "2022", "v": "2022"}, + {"n": "2021", "v": "2021"}, + {"n": "2020", "v": "2020"}, + {"n": "2019", "v": "2019"}, + {"n": "2018", "v": "2018"}, + {"n": "2017", "v": "2017"}, + {"n": "2016", "v": "2016"}, + {"n": "2015", "v": "2015"}, + {"n": "2014", "v": "2014"}, + {"n": "2013", "v": "2013"}, + {"n": "2012", "v": "2012"}, + {"n": "2011", "v": "2011"}, + ] + drama_classes = [ + {"n": "全部", "v": ""}, + {"n": "剧情", "v": "剧情"}, + {"n": "喜剧", "v": "喜剧"}, + {"n": "爱情", "v": "爱情"}, + {"n": "动作", "v": "动作"}, + {"n": "悬疑", "v": "悬疑"}, + {"n": "恐怖", "v": "恐怖"}, + {"n": "奇幻", "v": "奇幻"}, + {"n": "惊悚", "v": "惊悚"}, + {"n": "犯罪", "v": "犯罪"}, + {"n": "科幻", "v": "科幻"}, + {"n": "音乐", "v": "音乐"}, + {"n": "其他", "v": "其他"}, + ] self.filter_def = {key: {"cateId": key} for key in ["1", "2", "3", "4", "5", "6"]} self.filters = { "1": [ @@ -41,70 +75,97 @@ class Spider(BaseSpider): "key": "class", "name": "剧情", "init": "", - "value": [{"n": "全部", "v": ""}, {"n": "喜剧", "v": "喜剧"}], + "value": [ + {"n": "全部", "v": ""}, + {"n": "喜剧", "v": "喜剧"}, + {"n": "爱情", "v": "爱情"}, + {"n": "恐怖", "v": "恐怖"}, + {"n": "动作", "v": "动作"}, + {"n": "科幻", "v": "科幻"}, + {"n": "剧情", "v": "剧情"}, + {"n": "战争", "v": "战争"}, + {"n": "警匪", "v": "警匪"}, + {"n": "犯罪", "v": "犯罪"}, + {"n": "动画", "v": "动画"}, + {"n": "奇幻", "v": "奇幻"}, + {"n": "冒险", "v": "冒险"}, + ], }, { "key": "area", "name": "地区", "init": "", - "value": [{"n": "全部", "v": ""}, {"n": "欧美", "v": "欧美"}], - }, - { - "key": "year", - "name": "年份", - "init": "", - "value": [{"n": "全部", "v": ""}, {"n": "2025", "v": "2025"}], + "value": [ + {"n": "全部", "v": ""}, + {"n": "大陆", "v": "大陆"}, + {"n": "香港", "v": "香港"}, + {"n": "台湾", "v": "台湾"}, + {"n": "欧美", "v": "欧美"}, + {"n": "韩国", "v": "韩国"}, + {"n": "日本", "v": "日本"}, + {"n": "泰国", "v": "泰国"}, + {"n": "印度", "v": "印度"}, + {"n": "俄罗斯", "v": "俄罗斯"}, + {"n": "其他", "v": "其他"}, + ], }, + {"key": "year", "name": "年份", "init": "", "value": list(common_years)}, {"key": "by", "name": "排序", "init": "time", "value": list(sort_values)}, ], "2": [ - {"key": "class", "name": "剧情", "init": "", "value": [{"n": "全部", "v": ""}]}, - { - "key": "year", - "name": "年份", - "init": "", - "value": [{"n": "全部", "v": ""}, {"n": "2025", "v": "2025"}], - }, + {"key": "class", "name": "剧情", "init": "", "value": list(drama_classes)}, + {"key": "year", "name": "年份", "init": "", "value": list(common_years)}, {"key": "by", "name": "排序", "init": "time", "value": list(sort_values)}, ], "3": [ - {"key": "class", "name": "剧情", "init": "", "value": [{"n": "全部", "v": ""}]}, - { - "key": "year", - "name": "年份", - "init": "", - "value": [{"n": "全部", "v": ""}, {"n": "2025", "v": "2025"}], - }, + {"key": "class", "name": "剧情", "init": "", "value": list(drama_classes)}, + {"key": "year", "name": "年份", "init": "", "value": list(common_years)}, {"key": "by", "name": "排序", "init": "time", "value": list(sort_values)}, ], "4": [ - {"key": "class", "name": "剧情", "init": "", "value": [{"n": "全部", "v": ""}]}, - { - "key": "year", - "name": "年份", - "init": "", - "value": [{"n": "全部", "v": ""}, {"n": "2025", "v": "2025"}], - }, + {"key": "class", "name": "剧情", "init": "", "value": list(drama_classes)}, + {"key": "year", "name": "年份", "init": "", "value": list(common_years)}, {"key": "by", "name": "排序", "init": "time", "value": list(sort_values)}, ], "5": [ - { - "key": "year", - "name": "年份", - "init": "", - "value": [{"n": "全部", "v": ""}, {"n": "2025", "v": "2025"}], - }, + {"key": "year", "name": "年份", "init": "", "value": list(common_years)}, {"key": "by", "name": "排序", "init": "time", "value": list(sort_values)}, ], "6": [ - {"key": "class", "name": "剧情", "init": "", "value": [{"n": "全部", "v": ""}]}, - {"key": "area", "name": "地区", "init": "", "value": [{"n": "全部", "v": ""}]}, { - "key": "year", - "name": "年份", + "key": "class", + "name": "剧情", "init": "", - "value": [{"n": "全部", "v": ""}, {"n": "2025", "v": "2025"}], + "value": [ + {"n": "全部", "v": ""}, + {"n": "情感", "v": "情感"}, + {"n": "科幻", "v": "科幻"}, + {"n": "热血", "v": "热血"}, + {"n": "推理", "v": "推理"}, + {"n": "搞笑", "v": "搞笑"}, + {"n": "冒险", "v": "冒险"}, + {"n": "萝莉", "v": "萝莉"}, + {"n": "校园", "v": "校园"}, + {"n": "动作", "v": "动作"}, + {"n": "机战", "v": "机战"}, + {"n": "运动", "v": "运动"}, + {"n": "战争", "v": "战争"}, + {"n": "少年", "v": "少年"}, + ], }, + { + "key": "area", + "name": "地区", + "init": "", + "value": [ + {"n": "全部", "v": ""}, + {"n": "国产", "v": "国产"}, + {"n": "日本", "v": "日本"}, + {"n": "欧美", "v": "欧美"}, + {"n": "其他", "v": "其他"}, + ], + }, + {"key": "year", "name": "年份", "init": "", "value": list(common_years)}, {"key": "by", "name": "排序", "init": "time", "value": list(sort_values)}, ], }