OurBits 的简介在 div.ubbcode 里是未渲染的 BBCode(站点前端脚本渲染),按 HTML 取文本后 [quote] / [img] / [url] 原样留下、换行全被合并。extractDetailPage 遇到 ubbcode 容器且内容带 BBCode 标记时, 改用 pageFromBbcode 取简介 / 截图 / MediaInfo(换行保留),发布者、文件、标签与页面上的外部 ID 照旧。 覆盖层补 fileListPath(viewfilelist.php),与憨憨一样按需取文件列表。脱敏样例 OURBITS_DETAIL_PAGE + 测试。 Co-Authored-By: Claude Opus 5.5 <[email protected]>
61 lines
1.9 KiB
JSON
61 lines
1.9 KiB
JSON
{
|
|
"$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 位)。 详情页(2026-10-02 核对 1 次):简介是 div.ubbcode 里未渲染的 BBCode,由详情解析按 BBCode 处理;文件列表按需取 viewfilelist.php。",
|
|
"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]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"umt": {
|
|
"detail": {
|
|
"page": {
|
|
"fileListPath": "viewfilelist.php?id={id}"
|
|
}
|
|
}
|
|
}
|
|
}
|