笔趣阁biquge.tw
https://www.biquge.tw
lonbeaubrunpjl81 (13720)3天前
使用GPT生成的
适配
笔趣阁biquge.tw
需要科学上网
{
"bookSourceComment": "biquge.tw;本版针对正文为空:章节页走WebView,webJs返回正文文本,content使用<js>result<\/js>明确读取webJs返回值;保留CF登录认证入口。",
"bookSourceGroup": "GPT制作书源",
"bookSourceName": "笔趣阁biquge.tw",
"bookSourceType": 0,
"bookSourceUrl": "https:\/\/www.biquge.tw",
"customOrder": 1,
"enabled": true,
"enabledCookieJar": true,
"enabledExplore": true,
"exploreUrl": "@js:\nvar p = parseInt('{{page}}') || 1;\nvar cats = [\n ['全部','\/sort\/'],\n ['玄幻','\/sort\/xuanhuan\/'],\n ['武侠','\/sort\/wuxia\/'],\n ['都市','\/sort\/dushi\/'],\n ['历史','\/sort\/lishi\/'],\n ['科幻','\/sort\/kehuan\/'],\n ['游戏','\/sort\/youxi\/'],\n ['其他','\/sort\/qita\/']\n];\nresult = JSON.stringify(cats.map(function(x){\n var u = x[1] + (p > 1 ? p + '.html' : '');\n return {\n title: x[0],\n url: u,\n style: {layout_flexGrow:1, layout_flexBasisPercent:0.25}\n };\n}));",
"header": "{\"User-Agent\": \"Mozilla\/5.0 (Linux; Android 13; Pixel 7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/124.0.0.0 Mobile Safari\/537.36\", \"Accept\": \"text\/html,application\/xhtml+xml,application\/xml;q=0.9,image\/avif,image\/webp,*\/*;q=0.8\", \"Accept-Language\": \"zh-CN,zh;q=0.9\", \"Referer\": \"https:\/\/www.biquge.tw\/\"}",
"lastUpdateTime": "1779624773788",
"loginCheckJs": "try {\n var html = String(result.body());\n if (\/Just a moment|Cloudflare|cf-challenge|challenge-platform|请稍候|验证\/i.test(html)) {\n java.log('biquge.tw:疑似仍在 Cloudflare 验证页,请到书源“登录”里点击“打开CF认证”。');\n } else {\n java.log('biquge.tw:未检测到明显 Cloudflare 验证页。');\n }\n} catch (e) {\n java.log('biquge.tw loginCheckJs: ' + e);\n}\nresult",
"loginUi": "@js:\nvar li = [\n {'打开CF认证': 'cfAuth()'},\n {'测试章节正文': 'cfTestChapter()'},\n {'查看Cookie': 'cfShowCookie()'},\n {'清除CF Cookie': 'cfClearCookie()'}\n];\nli.forEach(function(item){\n var k = Object.keys(item)[0];\n item.name = k;\n item.type = 'button';\n item.action = item[k];\n item.style = {layout_flexGrow: 1, layout_flexBasisPercent: -1};\n delete item[k];\n});\nJSON.stringify(li)",
"loginUrl": "function cfOpt() {\n var ua = 'Mozilla\/5.0 (Linux; Android 13; Pixel 7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/124.0.0.0 Mobile Safari\/537.36';\n var opt = {\n webView: true,\n retry: 2,\n headers: {\n 'User-Agent': ua,\n 'Referer': 'https:\/\/www.biquge.tw\/'\n }\n };\n return JSON.stringify(opt);\n}\n\nfunction cfAuth() {\n try {\n var url = 'https:\/\/www.biquge.tw\/,' + cfOpt();\n java.startBrowserAwait(url, 'biquge.tw CF认证', false);\n var ck = String(java.getCookie('https:\/\/www.biquge.tw\/', null));\n java.log('biquge.tw Cookie: ' + ck);\n return true;\n } catch (e) {\n java.log('CF认证打开失败: ' + e);\n return false;\n }\n}\n\nfunction cfTestChapter() {\n try {\n var url = 'https:\/\/www.biquge.tw\/book\/9002\/286409.html,' + cfOpt();\n java.startBrowserAwait(url, '测试章节正文', false);\n var ck = String(java.getCookie('https:\/\/www.biquge.tw\/', null));\n java.log('biquge.tw Cookie: ' + ck);\n return true;\n } catch (e) {\n java.log('测试章节打开失败: ' + e);\n return false;\n }\n}\n\nfunction cfClearCookie() {\n try {\n cookie.removeCookie('https:\/\/www.biquge.tw');\n cookie.removeCookie('https:\/\/www.biquge.tw\/');\n java.log('已清除 biquge.tw Cookie,请重新点击“打开CF认证”。');\n return true;\n } catch (e) {\n java.log('清除 Cookie 失败: ' + e);\n return false;\n }\n}\n\nfunction cfShowCookie() {\n try {\n var ck = String(java.getCookie('https:\/\/www.biquge.tw\/', null));\n java.log('biquge.tw Cookie: ' + ck);\n return true;\n } catch (e) {\n java.log('读取 Cookie 失败: ' + e);\n return false;\n }\n}",
"respondTime": 180000,
"ruleBookInfo": {
"author": "@css:h2 > span > a@text",
"coverUrl": "@css:div.cover > img@src",
"intro": "@css:div.intro > p@text",
"kind": "@css:a[href*=sort]@text&&h2@text##作者:[^\\s]+\\s*",
"lastChapter": "@css:p:contains(最新章节) a@text",
"name": "@css:h1@text",
"tocUrl": "@css:a.chapterlist@href##$##,{\"webView\":true,\"headers\":{\"Referer\":\"https:\/\/www.biquge.tw\/\",\"User-Agent\":\"Mozilla\/5.0 (Linux; Android 13; Pixel 7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/124.0.0.0 Mobile Safari\/537.36\"},\"retry\":2}",
"wordCount": "@css:h2@text##.*字数:([^\\s]+).*##$1"
},
"ruleContent": {
"content": "<js>result<\/js>",
"title": "@css:h1@text##(\\d+\\s*\/\\s*\\d+)",
"webJs": "(function(){\n function pick(){\n var sels = ['#chaptercontent','#content','.chaptercontent','.chapter-content','.read-content','.read-content p','.content','article','main'];\n for (var i=0;i<sels.length;i++){\n var n=document.querySelector(sels[i]);\n var t=n ? (n.innerText || n.textContent || '') : '';\n t=String(t||'').replace(\/^\\s+|\\s+$\/g,'');\n if(t.length>50) return t;\n }\n return '';\n }\n var s=pick();\n if(!s && document.body){\n s=String(document.body.innerText || document.body.textContent || '');\n }\n s=String(s||'');\n if(\/Just a moment|Cloudflare|cf-browser-verification|cf-challenge|challenge-platform|Checking if the site connection is secure\/i.test(s)){\n return '【WEBJS已执行】仍在Cloudflare验证页:请在书源登录里打开CF认证,认证后清除章节缓存。';\n }\n var titleNode=document.querySelector('h1');\n var title=titleNode ? String(titleNode.innerText || titleNode.textContent || '') : '';\n if(title){\n var tp=s.indexOf(title);\n if(tp>=0) s=s.substring(tp+title.length);\n }\n var p1=s.indexOf('上一章');\n if(p1>=0){\n var p2=s.indexOf('下一章',p1);\n if(p2>=0) s=s.substring(p2+3);\n }\n var p3=s.indexOf('上一章');\n if(p3>30) s=s.substring(0,p3);\n s=s.replace(\/\\r\/g,'');\n s=s.replace(\/\\n[ \\t\\u3000]+\/g,'\\n');\n s=s.replace(\/[ \\t\\u3000]{2,}\/g,' ');\n s=s.replace(\/^(\\s|目录|下一章|上一章)+\/g,'');\n s=s.replace(\/请收藏本站[^\\n]*\/g,'');\n s=s.replace(\/最新网址[^\\n]*\/g,'');\n s=s.replace(\/手机用户请浏览[^\\n]*\/g,'');\n s=s.replace(\/笔趣阁[^\\n]*最快更新[^\\n]*\/g,'');\n s=s.replace(\/本章未完[^\\n]*\/g,'');\n s=s.replace(\/本站所有小说[\\s\\S]*\/g,'');\n s=s.replace(\/本站所有小說[\\s\\S]*\/g,'');\n s=s.replace(\/Copyright[\\s\\S]*\/g,'');\n s=s.replace(\/^\\s+|\\s+$\/g,'');\n if(!s){\n var html=document.documentElement ? String(document.documentElement.outerHTML||'') : '';\n return '【WEBJS已执行但正文为空】页面标题=' + (document.title||'') + '\\nHTML长度=' + html.length + '\\nbody文本前300字=' + String((document.body && document.body.innerText)||'').substring(0,300);\n }\n return s;\n})()"
},
"ruleExplore": {
"bookList": "@css:a[href~=^\/book\/[0-9]+\\.html$]:matchesOwn(.+),a[href~=^https?:\/\/(www\\.)?biquge\\.tw\/book\/[0-9]+\\.html$]:matchesOwn(.+)",
"bookUrl": "@href##$##,{\"webView\":true,\"headers\":{\"Referer\":\"https:\/\/www.biquge.tw\/\",\"User-Agent\":\"Mozilla\/5.0 (Linux; Android 13; Pixel 7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/124.0.0.0 Mobile Safari\/537.36\"},\"retry\":2}",
"name": "@text"
},
"ruleSearch": {
"bookList": "@css:a[href~=^\/book\/[0-9]+\\.html$]:matchesOwn(.+),a[href~=^https?:\/\/(www\\.)?biquge\\.tw\/book\/[0-9]+\\.html$]:matchesOwn(.+)",
"bookUrl": "@href##$##,{\"webView\":true,\"headers\":{\"Referer\":\"https:\/\/www.biquge.tw\/\",\"User-Agent\":\"Mozilla\/5.0 (Linux; Android 13; Pixel 7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/124.0.0.0 Mobile Safari\/537.36\"},\"retry\":2}",
"checkKeyWord": "兽世",
"name": "@text"
},
"ruleToc": {
"chapterList": "@css:div.booklist ul > li > a",
"chapterName": "@text",
"chapterUrl": "@href##$##,{\"webView\":true,\"headers\":{\"Referer\":\"https:\/\/www.biquge.tw\/\",\"User-Agent\":\"Mozilla\/5.0 (Linux; Android 13; Pixel 7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/124.0.0.0 Mobile Safari\/537.36\"},\"retry\":2}"
},
"searchUrl": "\/search\/?page={{page}}&search={{key}}&searchkey={{key}}&sort=default",
"weight": 0
}