品书斋🌟
https://www.pinshuzhai.com
langzaier (13654)08/05 00:24
by狼崽儿 //2026.7.30
主要是优质出版小说,兼部分网络小说。
如果没有出正文,就再刷新一次。该网站有时连接速度很慢,甚至连接不上,都是正常情况,过段时间再连就行了。
修改了正文规则,清洗了正文,尽可能使正文不出现其他多余内容。//2026.8.5
{
"bookSourceComment": "by狼崽儿 \/\/2026.7.30\n主要是优质出版小说,兼部分网络小说。\n如果没有出正文,就再刷新一次。该网站有时连接速度很慢,甚至连接不上,都是正常情况,过段时间再连就行了。",
"bookSourceName": "品书斋🌟",
"bookSourceType": 0,
"bookSourceUrl": "https:\/\/www.pinshuzhai.com ",
"concurrentRate": "",
"customOrder": 0,
"enabled": true,
"enabledCookieJar": true,
"enabledExplore": true,
"exploreUrl": "书香文库::\/bookcat\/shuxiangwenku\/page\/{{page}}\n中国文学::\/bookcat\/zhongguowenxue\/page\/{{page}}\n世界文学::\/bookcat\/shijiewenxue\/page\/{{page}}\n经典名著::\/bookcat\/jingdianmingzhu\/page\/{{page}}\n悬疑推理::\/bookcat\/xuanyituili-2\/page\/{{page}}\n散文集::\/bookcat\/sanwenji\/page\/{{page}}\n传记::\/bookcat\/zhuanji\/page\/{{page}}\n以下是网络小说分类 \n网络小说总类::\/bookcat\/wangluoxiaoshuo\/page\/{{page}} \n玄幻奇幻::\/bookcat\/xuanhuanqihuan\/page\/{{page}}\n武侠仙侠::\/bookcat\/wuxiaxianxia\/page\/{{page}}\n恋爱言情::\/bookcat\/lianaiyanqing\/page\/{{page}}\n都市生活::\/bookcat\/dushishenghuo\/page\/{{page}}\n悬疑推理::\/bookcat\/xuanyituili\/page\/{{page}}\n恐怖灵异::\/bookcat\/kongbulingyi\/page\/{{page}}\n科学幻想::\/bookcat\/kehuan\/page\/{{page}}\n历史军事::\/bookcat\/lishijunshi\/page\/{{page}}\n穿越重生::\/bookcat\/chuanyuechongsheng\/page\/{{page}}",
"header": "{ \"User-Agent\": \"Mozilla\/5.0 (Linux; Android 8.1.0; JKM-AL00b Build\/HUAWEIJKM-AL00b; wv) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/66.0.3359.126 MQQBrowser\/6.2 TBS\/044807 Mobile Safari\/537.36\"}",
"lastUpdateTime": "1785860697251",
"loginUrl": "https:\/\/www.pinshuzhai.com",
"respondTime": 180000,
"ruleBookInfo": {
"author": "@XPath:\/\/meta[@property='og:novel:author']\/@content",
"coverUrl": "@XPath:\/\/meta[@property='og:image']\/@content@js:encodeURI(result) + ',{\"headers\":{\"Referer\":\"https:\/\/www.pinshuzhai.com\"}}'",
"intro": ".docspt@text##作品简介:",
"kind": ".catb a@text&&",
"name": "@XPath:\/\/meta[@property='og:novel:book_name']\/@content",
"wordCount": ".nif span@text"
},
"ruleContent": {
"content": "#chapter@html@js:\nvar html = result;\n\/\/ 砍掉推荐阅读区域(稳定class)\nvar t = html.indexOf('class=\\\"tjlm\\\"');\nif (t > -1) {\n var d = html.indexOf('<\/div>', t);\n if (d > -1) html = html.substring(0, t - 6) + html.substring(d + 6);\n}\n\/\/ 砍掉书籍信息区 rdinfo(书名\/作者\/字数\/时间,稳定class)\nvar r = html.indexOf('class=\\\"rdinfo\\\"');\nif (r > -1) {\n var rd = html.indexOf('<\/div>', r);\n if (rd > -1) html = html.substring(0, r - 6) + html.substring(rd + 6);\n}\n\/\/ 砍掉所有上下导航 ydgong(稳定class)\nwhile (true) {\n var y = html.indexOf('class=\\\"ydgong\\\"');\n if (y === -1) break;\n var yd = html.indexOf('<\/div>', y);\n if (yd === -1) break;\n html = html.substring(0, y - 6) + html.substring(yd + 6);\n}\n\/\/ 砍掉所有来源行(class 含 hid\/shid\/shidp,支持 div\/p\/article 标签)\nwhile (true) {\n var sh = html.indexOf('class=\\\"hid\\\"');\n if (sh === -1) sh = html.indexOf('class=\\\"shid\\\"');\n if (sh === -1) sh = html.indexOf('class=\\\"shidp\\\"');\n if (sh === -1) break;\n var ts = html.lastIndexOf('<', sh);\n var cd = html.indexOf('<\/div>', sh);\n var cp = html.indexOf('<\/p>', sh);\n var ca = html.indexOf('<\/article>', sh);\n var ce = -1, clen = 0;\n if (cd > -1) { ce = cd; clen = 6; }\n if (cp > -1 && (ce === -1 || cp < ce)) { ce = cp; clen = 4; }\n if (ca > -1 && (ce === -1 || ca < ce)) { ce = ca; clen = 10; }\n if (ce === -1 || ts === -1) break;\n html = html.substring(0, ts) + html.substring(ce + clen);\n}\n\/\/ 砍掉章节标题 h2\nvar h2s = html.indexOf('<h2');\nif (h2s > -1) {\n var h2e = html.indexOf('<\/h2>', h2s);\n if (h2e > -1) html = html.substring(0, h2s) + html.substring(h2e + 5);\n}\n\/\/ <\/p> → 换行、<br> → 换行\nhtml = html.split('<\/p>').join('\\\n');\nhtml = html.split('<br\/>').join('\\\n');\nhtml = html.split('<br>').join('\\\n');\n\/\/ 手动去HTML标签\nvar out = '';\nvar inTag = false;\nfor (var ci = 0; ci < html.length; ci++) {\n var ch = html.charAt(ci);\n if (ch === '<') { inTag = true; continue; }\n if (ch === '>') { inTag = false; continue; }\n if (!inTag) out += ch;\n}\n\/\/ 行过滤:去掉残留杂质(来源\/导航\/元数据)\nvar lines = out.split('\\\n');\nvar clean = [];\nfor (var li = 0; li < lines.length; li++) {\n var l = lines[li];\n var low = l.toLowerCase();\n if (low.indexOf('pinshuzhai') > -1) continue;\n if (l.indexOf('品书斋') > -1) continue;\n if (l.indexOf('章节列表') > -1) continue;\n if (l.indexOf('下一章') > -1) continue;\n if (l.indexOf('上一章') > -1) continue;\n if (l.indexOf('推荐阅读') > -1) continue;\n if (l.match(\/\\\\d+字\/) || l.match(\/\\\\d{4}-\\\\d{2}-\\\\d{2}\/)) continue;\n var trimmed = l.replace(\/\\\\u3000\/g, '').replace(\/ \/g, '');\n if (!trimmed || trimmed === '→') continue;\n clean.push(l);\n}\nresult = clean.join('\\\n');",
"replaceRegex": ""
},
"ruleExplore": {
"author": ".bookinfo .author a@text",
"bookList": ".catdanlist ul li",
"bookUrl": ".bookinfo h4 a@href",
"coverUrl": "div:first-child a img@src@js:encodeURI(result) + ',{\"headers\":{\"Referer\":\"https:\/\/www.pinshuzhai.com\"}}'",
"intro": ".bookinfo p:last-of-type@text",
"kind": ".bookinfo .cats@text",
"name": ".bookinfo h4 a@text"
},
"ruleSearch": {
"author": ".bookinfo .author a@text",
"bookList": ".catdanlist ul li",
"bookUrl": ".bookinfo h4 a@href",
"coverUrl": "div:first-child a img@src@js:encodeURI(result) + ',{\"headers\":{\"Referer\":\"https:\/\/www.pinshuzhai.com\"}}'",
"intro": ".bookinfo p:last-of-type@text",
"kind": ".bookinfo .cats@text",
"name": ".bookinfo h4 a@text"
},
"ruleToc": {
"chapterList": ".newzxzj .zjlist a",
"chapterName": "@text",
"chapterUrl": "@href"
},
"searchUrl": "page\/{{page}}?s={{key}}",
"weight": 0
}