话本小说网

https://m.qxbbe.com

xutongxue233 (14152)5天前

话本小说网(m.qxbbe.com)修复版,2026-07-09 更新:
1. 修复搜索/发现列表报 missing ; before statement:阅读源码中 @js: 会贪婪匹配到规则末尾,原 bookUrl 的 @js + || 分支会被 Rhino 当作非法 JS;已改为 @CSS 选择器组取链接后统一 QX.web 包装。
2. 修复目录获取:详情页会提示“获取目录失败”,现改为从详情页书号构造 /dir/{id}.html,并在 WebView 内读取 dir.json 接口,一次获取全量章节。
3. 修复正文获取不完整:正文页存在两个重复的 #pt_next,原规则会返回多个下一页链接,阅读会走并发模式导致漏抓后续分页;现改为从整页只提取第一个“下一页”按钮,并串行抓取同章分页。
4. 修复正文串章:最后一页按钮为“下一章”时返回空,只跟随 /书号/章节号/页码.html 这种同章分页,避免串到下一章。
5. 搜索、发现、详情、目录、章节均保留 WebView + CookieJar,适配 Cloudflare 站点访问。

二维码导入
{
    "bookSourceComment": "\/\/Cloudflare 站点;搜索\/发现\/详情\/章节走 WebView 保持验证 Cookie;详情页本身会显示“获取目录失败”,目录改走 \/dir\/{id}.html 内的 dir.json 接口一次取全量章节;正文下一页只拼接同章分页,避免最后一页串到下一章。",
    "bookSourceName": "话本小说网",
    "bookSourceType": 0,
    "bookSourceUrl": "https:\/\/m.qxbbe.com",
    "bookUrlPattern": "https?:\/\/m\\.qxbbe\\.com\/\\d+\/?|https?:\/\/m\\.qxbbe\\.com\/\\d+\/\\d+(?:\/\\d+)?\\.html",
    "customOrder": 0,
    "enabled": true,
    "enabledCookieJar": true,
    "enabledExplore": true,
    "exploreUrl": "[{\"title\":\"首页\",\"url\":\"https:\/\/m.qxbbe.com\/,{\\\"webView\\\":true,\\\"webViewJsDelay\\\":2}\"},{\"title\":\"玄幻魔法\",\"url\":\"https:\/\/m.qxbbe.com\/category\/xhmf.html,{\\\"webView\\\":true,\\\"webViewJsDelay\\\":2}\"},{\"title\":\"同人小说\",\"url\":\"https:\/\/m.qxbbe.com\/category\/trxs.html,{\\\"webView\\\":true,\\\"webViewJsDelay\\\":2}\"},{\"title\":\"武侠修真\",\"url\":\"https:\/\/m.qxbbe.com\/category\/wuxia.html,{\\\"webView\\\":true,\\\"webViewJsDelay\\\":2}\"},{\"title\":\"穿越小说\",\"url\":\"https:\/\/m.qxbbe.com\/category\/cyxs.html,{\\\"webView\\\":true,\\\"webViewJsDelay\\\":2}\"},{\"title\":\"都市言情\",\"url\":\"https:\/\/m.qxbbe.com\/category\/dsyq.html,{\\\"webView\\\":true,\\\"webViewJsDelay\\\":2}\"},{\"title\":\"历史军事\",\"url\":\"https:\/\/m.qxbbe.com\/category\/lsjs.html,{\\\"webView\\\":true,\\\"webViewJsDelay\\\":2}\"},{\"title\":\"网游动漫\",\"url\":\"https:\/\/m.qxbbe.com\/category\/wydm.html,{\\\"webView\\\":true,\\\"webViewJsDelay\\\":2}\"},{\"title\":\"科幻小说\",\"url\":\"https:\/\/m.qxbbe.com\/category\/khxs.html,{\\\"webView\\\":true,\\\"webViewJsDelay\\\":2}\"},{\"title\":\"综合其他\",\"url\":\"https:\/\/m.qxbbe.com\/category\/zhqt.html,{\\\"webView\\\":true,\\\"webViewJsDelay\\\":2}\"},{\"title\":\"排行\",\"url\":\"https:\/\/m.qxbbe.com\/rank.html,{\\\"webView\\\":true,\\\"webViewJsDelay\\\":2}\"},{\"title\":\"月点击\",\"url\":\"https:\/\/m.qxbbe.com\/rank\/monthvisit.html,{\\\"webView\\\":true,\\\"webViewJsDelay\\\":2}\"},{\"title\":\"周点击\",\"url\":\"https:\/\/m.qxbbe.com\/rank\/weekvisit.html,{\\\"webView\\\":true,\\\"webViewJsDelay\\\":2}\"},{\"title\":\"日点击\",\"url\":\"https:\/\/m.qxbbe.com\/rank\/dayvisit.html,{\\\"webView\\\":true,\\\"webViewJsDelay\\\":2}\"},{\"title\":\"全本\",\"url\":\"https:\/\/m.qxbbe.com\/over.html,{\\\"webView\\\":true,\\\"webViewJsDelay\\\":2}\"}]",
    "header": "{\n  \"User-Agent\": \"Mozilla\/5.0 (Linux; Android 12; Mobile) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/126.0 Mobile Safari\/537.36\",\n  \"Accept\": \"text\/html,application\/xhtml+xml,application\/xml;q=0.9,application\/json;q=0.8,*\/*;q=0.7\",\n  \"Accept-Language\": \"zh-CN,zh;q=0.9\",\n  \"Referer\": \"https:\/\/m.qxbbe.com\/\"\n}",
    "jsLib": "var QX=(function(){var HOST='https:\/\/m.qxbbe.com';function ent(s){return String(s||'').replace(\/&#x([0-9a-f]+);\/ig,function(a,b){return String.fromCharCode(parseInt(b,16));}).replace(\/&#(\\d+);\/g,function(a,b){return String.fromCharCode(parseInt(b,10));}).replace(\/&nbsp;|&emsp;|&#160;\/g,' ').replace(\/&lt;\/g,'<').replace(\/&gt;\/g,'>').replace(\/&quot;\/g,String.fromCharCode(34)).replace(\/&#39;|&apos;\/g,String.fromCharCode(39)).replace(\/&amp;\/g,'&');}function abs(u,b){u=ent(String(u||''));if(!u)return '';if(\/^https?:\\\/\\\/\/i.test(u))return u;if(\/^\\\/\\\/\/.test(u))return 'https:'+u;var h=String(b||'').match(\/^(https?:\\\/\\\/[^\\\/]+)\/i);if(u.charAt(0)=='\/')return (h?h[1]:HOST)+u;return (h?String(b).replace(\/[?#].*$\/,'').replace(\/\\\/[^\\\/]*$\/,'\/'):HOST+'\/')+u.replace(\/^\\.\\\/\/,'');}function web(u,delay,js){u=abs(u);var o={webView:true,webViewJsDelay:delay||2};if(js)o.webJs=js;return u+','+JSON.stringify(o);}function clean(s){return ent(String(s||'').replace(\/<[^>]+>\/g,'').replace(\/\\s+\/g,' ').replace(\/^\\s+|\\s+$\/g,''));}function text(h){var s=String(h||'');s=s.replace(\/<script[\\s\\S]*?<\\\/script>\/gi,'').replace(\/<style[\\s\\S]*?<\\\/style>\/gi,'').replace(\/<iframe[\\s\\S]*?<\\\/iframe>\/gi,'');s=s.replace(\/<br\\s*\\\/?\\s*>\/gi,'\\n').replace(\/<\\\/p>\/gi,'\\n').replace(\/<p[^>]*>\/gi,'').replace(\/<\\\/div>\/gi,'\\n').replace(\/<[^>]+>\/g,'');return ent(s).replace(\/\\r\/g,'').replace(\/[ \\t]+\\n\/g,'\\n').replace(\/\\n{3,}\/g,'\\n\\n').trim();}function bookId(h,b){var s=String(h||''),m=s.match(\/<meta[^>]+property=[\"']og:url[\"'][^>]+content=[\"'][^\"']*\\\/(\\d+)\\\/\/i)||s.match(\/<meta[^>]+content=[\"'][^\"']*\\\/(\\d+)\\\/[\"'][^>]+property=[\"']og:url[\"']\/i)||s.match(\/data-novel-id=[\"'](\\d+)\/i)||String(b||'').match(\/\\\/(\\d+)\\\/?(?:[,?#].*)?$\/);return m?m[1]:'';}function tocWebJs(){return '(function(){function e(){return \"{\\\\\\\"code\\\\\\\":0,\\\\\\\"data\\\\\\\":[]}\";}var api=\"\";var ss=document.getElementsByTagName(\"script\");for(var i=0;i<ss.length;i++){var m=String(ss[i].textContent||\"\").match(\/apiUrl\\\\s*=\\\\s*[\"\\\\x27]([^\"\\\\x27]+)[\"\\\\x27]\/);if(m){api=m[1].replace(\/&amp;\/g,\"&\");break;}}if(!api){var mm=location.href.match(\/\\\\\/dir\\\\\/(\\\\d+)\\\\.html\/i);if(mm)api=\"\/api\/novel\/novel\/dir.json?novelid=\"+mm[1]+\"&siteid=0&withurl=1\";}if(!api)return e();var x=new XMLHttpRequest();x.open(\"GET\",api,false);x.withCredentials=true;x.setRequestHeader(\"Accept\",\"application\/json,text\/plain,*\/*\");try{x.send(null);}catch(err){return e();}return x.responseText||e();})()';}function tocUrl(h,b){var id=bookId(h,b);return id?web('\/dir\/'+id+'.html',3,tocWebJs()):'';}function content(h){var lines=text(h).split(\/\\n+\/).map(function(x){return x.replace(\/^\\s+|\\s+$\/g,'');}).filter(function(x){return x&&!\/^本章未完\/.test(x)&&!\/^此页为本章\/.test(x)&&!\/^如内容不全\/.test(x)&&!\/^或提示是最新章节\/.test(x)&&!\/^请退出\\[阅#读#模#式\\]\/.test(x)&&!\/^\\(\\^ \\^\\)\/.test(x);});return lines.join('\\n').replace(\/\\n{3,}\/g,'\\n\\n').trim();}function firstUrl(x){var s=String(x||''),m=s.match(\/https?:\\\/\\\/[^\\s,\\]]+|\\\/[0-9]+\\\/[0-9]+(?:\\\/[0-9]+)?\\.html\/i);return m?m[0]:s;}function nextContent(u,b){u=abs(firstUrl(u),b);if(!u)return '';var bm=String(b||'').match(\/\\\/([0-9]+)\\\/([0-9]+)(?:\\\/([0-9]+))?\\.html\/i);if(!bm)return '';var book=bm[1],chap=bm[2],cur=bm[3]?parseInt(bm[3],10):1;var m=u.match(new RegExp('\/'+book+'\/'+chap+'\/(\\\\d+)\\\\.html(?:$|[?#])','i'));if(m&&parseInt(m[1],10)>cur)return web(u,1);return '';}function nextContentFromPage(h,b){var s=String(h||''),re=\/<(?:button|a)([^>]*)>([\\s\\S]*?)<\\\/(?:button|a)>\/gi,m;while((m=re.exec(s))){if(!\/id=[\"']pt_next[\"']\/i.test(m[1]))continue;if(clean(m[2]).indexOf('下一页')<0)continue;var dm=m[1].match(\/data-url=[\"']([^\"']+)[\"']\/i);if(dm)return nextContent(dm[1],b);}return '';}function nextList(u,b){u=abs(u,b);if(!u||\/\\\/\\.html(?:$|[?#])\/.test(u)||\/\\\/category\\\/\\\/\/.test(u)||\/\\\/rank\\\/\\\/\/.test(u))return '';return web(u,2);}return{abs:abs,web:web,clean:clean,tocUrl:tocUrl,content:content,nextContent:nextContent,nextContentFromPage:nextContentFromPage,nextList:nextList};})();",
    "lastUpdateTime": "1783559610458",
    "loginUrl": "https:\/\/m.qxbbe.com\/",
    "respondTime": 180000,
    "ruleBookInfo": {
        "author": "[property=\"og:novel:author\"]@content||.block_txt2 p@text##^作者:##",
        "coverUrl": "[property=\"og:image\"]@content||.block_img2 img@src",
        "intro": "[property=\"og:description\"]@content||.intro_info@text",
        "kind": "[property~=category|status|update_time]@content",
        "lastChapter": "[property=\"og:novel:latest_chapter_name\"]@content",
        "name": "[property=\"og:novel:book_name\"]@content||.block_txt2 h2@text",
        "tocUrl": "@js:QX.tocUrl(result,typeof baseUrl!='undefined'?baseUrl:'')"
    },
    "ruleContent": {
        "content": "#nr@html@js:QX.content(result)",
        "nextContentUrl": "@js:QX.nextContentFromPage(result,typeof baseUrl!='undefined'?baseUrl:'')",
        "title": "#nr_title@text##\\s+第\\d+页$##"
    },
    "ruleExplore": {
        "author": ".author a@text##^作者:##||.author@text##^作者:##||.block_txt p:nth-child(2) a@text||.block_txt p:nth-child(2)@text##^作者:##",
        "bookList": ".bookbox||.block:has(.block_img)",
        "bookUrl": "@CSS:.bookname a,h4 a,.block_txt p:first-child a,.bookimg a,.block_img a@href@js:QX.web(String(result).split('\\n')[0],2)",
        "coverUrl": "img@src",
        "intro": ".intro_line@text##^简介:##||.block_txt p:nth-child(3)@text",
        "kind": "",
        "lastChapter": ".update a@text",
        "name": ".bookname a@text||h4 a@text||.block_txt p:first-child a@text||img@alt",
        "nextUrl": "text.下页@href@js:QX.nextList(result,typeof baseUrl!='undefined'?baseUrl:'')"
    },
    "ruleSearch": {
        "author": ".author a@text##^作者:##||.author@text##^作者:##",
        "bookList": ".bookbox",
        "bookUrl": "@CSS:.bookname a,h4 a,.bookimg a@href@js:QX.web(String(result).split('\\n')[0],2)",
        "coverUrl": "img@src",
        "intro": ".intro_line@text##^简介:##",
        "lastChapter": ".update a@text",
        "name": ".bookname a@text||h4 a@text||img@alt"
    },
    "ruleToc": {
        "chapterList": "$.data[*]",
        "chapterName": "name",
        "chapterUrl": "url@js:QX.web(result,1)"
    },
    "searchUrl": "https:\/\/m.qxbbe.com\/search\/result.html?searchkey={{key}},{\"webView\":true,\"webViewJsDelay\":2}",
    "weight": 0
}
广告