fix(sites): 按真实列表页修正 OurBits / 彩虹岛 / 憨憨 解析
2026-10-02 用真实账号各抓一次列表页与用户页(只读)核对: - OurBits:标题列嵌套 table.torrentname 有 5 个 td,td:nth-child(n) 先命中嵌套格子, 大小全为 0、发布时间 N/A;改为只匹配行的直接子单元格。副标题原取成标签块,改为标签之后的正文; 新增标签与列表页 IMDb / 豆瓣 ID(label.imdb_rate / douban_rate 的 data 属性) - 彩虹岛:font.subtitle 去掉前面的 div.tag 与末尾徽标,标签单独取 - 憨憨:新增列表标签(span.tag,不含促销) - 纯数字 IMDb ID 补成 tt + 7 位(imdbIdOf) - 用户页核对:下载量为 0 是站点实际显示(VIP),解析正确;上传量四站与页面一致 - 脱敏样例 sites-2026.ts + 定义测试;差分登记 23 条有意偏离(新增 labels、OurBits 副标题) Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
cac1833f53
commit
64e1dfb1d2
12 files changed
+327
-16
No files matched your search
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"$comment": "CHDBits 分类名取自 MovieClaw chdbits.yaml 注释(TV Series / TV Shows / Sports / Music Videos / HQ Audio)。",
|
||||
"$comment": "CHDBits 分类名取自 MovieClaw chdbits.yaml 注释(TV Series / TV Shows / Sports / Music Videos / HQ Audio)。 2026-10-02 真实列表页核对:font.subtitle 里先是 div.tag 标签再是副标题,末尾 div.circle 徽标;副标题去掉 div,标签取 div.tag。",
|
||||
"umt": {
|
||||
"categoryNames": {
|
||||
"401": "电影",
|
||||
@@ -12,5 +12,16 @@
|
||||
"408": "HQ Audio",
|
||||
"409": "其他"
|
||||
}
|
||||
},
|
||||
"torrents": {
|
||||
"fields": {
|
||||
"description": {
|
||||
"selector": "font.subtitle",
|
||||
"remove": "div"
|
||||
},
|
||||
"labels": {
|
||||
"selector": "font.subtitle div.tag"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"$comment": "HHClub 分类名取自 MovieClaw hhanclub.yaml 注释(导航栏分类表);REQ §4.5 要求综艺/体育/短剧保留原始分类。2026-09-29 真实账号核对:列表标题链接里带站点的新种标记「[新]」(详情页标题没有),用 replace 过滤掉;等级「贵宾」为 VIP;访问默认按低频原则收紧(快照只抓第 1 页、健康检测 6 小时、详情缓存 24 小时、搜索并发 1)。",
|
||||
"$comment": "HHClub 分类名取自 MovieClaw hhanclub.yaml 注释(导航栏分类表);REQ §4.5 要求综艺/体育/短剧保留原始分类。2026-09-29 真实账号核对:列表标题链接里带站点的新种标记「[新]」(详情页标题没有),用 replace 过滤掉;等级「贵宾」为 VIP;访问默认按低频原则收紧(快照只抓第 1 页、健康检测 6 小时、详情缓存 24 小时、搜索并发 1)。 2026-10-02 真实列表页核对:标签在 torrent-title 里的 span.tag(促销是 promotion-tag,不混入)。",
|
||||
"umt": {
|
||||
"categoryNames": {
|
||||
"401": "电影",
|
||||
@@ -48,6 +48,9 @@
|
||||
"args": ["(新)", ""]
|
||||
}
|
||||
]
|
||||
},
|
||||
"labels": {
|
||||
"selector": "div.torrent-title span.tag"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
{
|
||||
"$comment": "2026-10-02 真实账号核对列表页 1 次(.local/site-samples/ourbits-torrents.html):标题列嵌套的 table.torrentname 有 5 个 td,MovieClaw 的 td:nth-child(n) 会先命中嵌套格子(大小 0、时间 N/A),改为只匹配行的直接子单元格;副标题在 td.embedded 里标签 div 之后,原定义取到的是标签;标签在 span.tag;列表页有 IMDb / 豆瓣 ID(label.imdb_rate / label.douban_rate 的 data 属性,IMDb 为纯数字,映射时补 tt + 7 位)。",
|
||||
"torrents": {
|
||||
"fields": {
|
||||
"date_elapsed": {
|
||||
"selector": "> td:nth-child(4)"
|
||||
},
|
||||
"date_added": {
|
||||
"selector": "> td:nth-child(4) > span",
|
||||
"attribute": "title"
|
||||
},
|
||||
"size": {
|
||||
"selector": "> td:nth-child(5)"
|
||||
},
|
||||
"seeders": {
|
||||
"selector": "> td:nth-child(6)"
|
||||
},
|
||||
"leechers": {
|
||||
"selector": "> td:nth-child(7)"
|
||||
},
|
||||
"grabs": {
|
||||
"selector": "> td:nth-child(8)"
|
||||
},
|
||||
"description": {
|
||||
"selector": "table.torrentname td.embedded",
|
||||
"remove": "a, b, img, div, br, font"
|
||||
},
|
||||
"labels": {
|
||||
"selector": "span.tag"
|
||||
},
|
||||
"imdbid": {
|
||||
"selector": "label.imdb_rate",
|
||||
"attribute": "data-imdbid",
|
||||
"filters": [
|
||||
{
|
||||
"name": "re_search",
|
||||
"args": ["[1-9]\\d*", 0]
|
||||
}
|
||||
]
|
||||
},
|
||||
"doubanid": {
|
||||
"selector": "label.douban_rate",
|
||||
"attribute": "data-doubanid",
|
||||
"filters": [
|
||||
{
|
||||
"name": "re_search",
|
||||
"args": ["[1-9]\\d*", 0]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user