[{"bookSourceComment":"77读书 www.77shuku.info | 杰奇CMS UTF-8 无需登录 无搜索频控(实测) ◆ 规则要点: 搜索\/发现\/目录列表均 @js 返回JSON字符串数组+$.纯键字段(绕开AnalyzeByJSoup状态污染) ◆ 正文=div#ChapterContents去content_tip+截断txt下载地址尾部广告+逐行广告词过滤, 交HtmlFormatter净化 ◆ 发现=8分类(\/store\/N_page)+8排行(postdate=入库\/toptime=本站推荐)+全本小说+站内最新 | bookUrlPattern匹配\/novel\/ID\/ ◆ 构建: LegadoTeam官方版 2026-09-12","bookSourceGroup":"AI","bookSourceName":"77读书(77shuku)","bookSourceType":0,"bookSourceUrl":"http:\/\/www.77shuku.info","bookUrlPattern":"https?:\/\/www[.]77shuku[.]info\/novel\/[0-9]+\/?","concurrentRate":"2\/1000","customButton":false,"customOrder":0,"enabled":true,"enabledCookieJar":false,"enabledExplore":true,"eventListener":false,"exploreUrl":"@js:var arr = []; function sec(t){ arr.push({title: t}); } function it(t, u){ arr.push({title: t, url: u}); } sec('—— 分类 ——'); it('玄幻', '\/store\/1_{{page}}.html'); it('仙侠', '\/store\/2_{{page}}.html'); it('都市', '\/store\/3_{{page}}.html'); it('言情', '\/store\/9_{{page}}.html'); it('穿越', '\/store\/4_{{page}}.html'); it('科幻', '\/store\/7_{{page}}.html'); it('恐怖', '\/store\/6_{{page}}.html'); it('网游', '\/store\/8_{{page}}.html'); sec('—— 排行 ——'); it('总点击榜', '\/rank\/allvisit\/'); it('月点击榜', '\/rank\/monthvisit\/'); it('周点击榜', '\/rank\/weekvisit\/'); it('最新入库', '\/rank\/postdate\/'); it('字数排行', '\/rank\/size\/'); it('总推荐榜', '\/rank\/allvote\/'); it('收藏排行', '\/rank\/goodnum\/'); it('本站推荐', '\/rank\/toptime\/'); sec('—— 专题 ——'); it('全本小说', '\/quanben.html'); it('站内最新', 'http:\/\/www.77shuku.info\/'); String(JSON.stringify(arr));","header":"{\"User-Agent\": \"Mozilla\/5.0 (Linux; Android 14; Pixel 8) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/126.0.0.0 Mobile Safari\/537.36\"}","lastUpdateTime":"1789196952566","loginCheckJs":"var b = ''; try { var x = result.body; if (typeof x === 'function') { x = x.call(result); } b = String(x || ''); } catch (e) {} if (b.indexOf('搜索间隔') > -1 || b.indexOf('请勿频繁') > -1 || b.indexOf('稍后再') > -1) { throw new Error('⏳ 触发站点搜索间隔限制，请等待约2分钟后再搜索'); } result;","respondTime":12493,"ruleBookInfo":{"author":"meta[property=og:novel:author]@content","coverUrl":"meta[property=og:image]@content","intro":"@js:var Jsoup = Packages.org.jsoup.Jsoup; var doc = (result && typeof result.select === 'function') ? result : Jsoup.parse(String(result)); var el = doc.select('div#intro'); el.size() > 0 ? String(el.get(0).html()) : '';","kind":"meta[property=og:novel:category]@content","lastChapter":"meta[property=og:novel:latest_chapter_name]@content","name":"meta[property=og:novel:book_name]@content","wordCount":"@js:var Jsoup = Packages.org.jsoup.Jsoup; var doc = (result && typeof result.select === 'function') ? result : Jsoup.parse(String(result)); var el = doc.select('div#info span.item'); var wc = ''; for (var i = 0; i < el.size(); i++) { var t = String(el.get(i).text()); if (t.indexOf('字数') > -1) { wc = t.replace('字数：', '').replace('字', ''); break; } } wc;"},"ruleContent":{"content":"@js:var Jsoup = Packages.org.jsoup.Jsoup; var Parser = Packages.org.jsoup.parser.Parser; var doc = (result && typeof result.select === 'function') ? result : Jsoup.parse(String(result)); var els = doc.select('div#ChapterContents'); var out = ''; if (els.size() > 0) { var e = els.get(0); var tp = e.select('div#content_tip'); if (tp.size() > 0) { tp.get(0).remove(); } var htm = String(e.html()); var c1 = htm.indexOf('txt下载地址'); if (c1 > -1) { htm = htm.substring(0, c1); } var NL = String.fromCharCode(10); var SP = String.fromCharCode(32); var NB = String.fromCharCode(160); htm = htm.replace(\/<br[^>]*>\/gi, NL); htm = htm.replace(\/<[^>]+>\/g, SP); var raw = Parser.unescapeEntities(htm, true); raw = raw.split(NB).join(SP); var ads = ['txt', 'http', 'www.', '.com', '.net', '.cc', '.vip', '.top', '.xyz', '77dushu', '77shuku', '最新网址', '请收藏本站', '全文免费阅读', '全集txt', '记住77', '牢记网址', '无弹窗', '最快更新', '手机版', '手机端', '章节报错', 'APP', 'app下载', '盗版', '请分享']; function hasCJK(s) { for (var c = 0; c < s.length; c++) { var z = s.charCodeAt(c); if (z >= 19968 && z <= 40869) { return true; } } return false; } var lines = raw.split(NL); var res = []; for (var i = 0; i < lines.length; i++) { var ln = String(lines[i]).replace(\/ +\/g, SP).trim(); if (ln.length == 0) { continue; } var low = ln.toLowerCase(); var bad = false; for (var k = 0; k < ads.length; k++) { if (low.indexOf(ads[k].toLowerCase()) > -1) { bad = true; break; } } if (bad) { continue; } if (ln.length <= 8 && !hasCJK(ln)) { continue; } res.push(ln); } out = res.join(NL + NL); } out;"},"ruleExplore":{"author":"$.author","bookList":"@js:var Jsoup = Packages.org.jsoup.Jsoup; var doc = (result && typeof result.select === 'function') ? result : Jsoup.parse(String(result)); function E(s){ return String(s).trim(); } var out = []; var bs = doc.select('div.shu_box'); if (bs.size() > 0) { for (var i = 0; i < bs.size(); i++) { var b = bs.get(i); var a = b.select('div.shu_xinxi h4 a'); if (a.size() == 0) { continue; } var sm = b.select('div.shu_xinxi h4 small'); var ip = b.select('p.intro'); var im = b.select('div.shu_img img'); out.push(String(JSON.stringify({name: E(a.get(0).text()), bookUrl: String(a.get(0).attr('href')), author: sm.size() > 0 ? E(sm.get(0).text()) : '', kind: '', lastChapter: '', wordCount: '', coverUrl: im.size() > 0 ? String(im.get(0).attr('src')) : '', intro: ip.size() > 0 ? E(ip.get(0).text()) : '', updateTime: ''}))); } } else { var rs = doc.select('div#articlelist ul li'); var hit = false; for (var i = 0; i < rs.size(); i++) { var a2 = rs.get(i).select('span.l2 a'); if (a2.size() == 0) { continue; } hit = true; var l1 = rs.get(i).select('span.l1'); var l3 = rs.get(i).select('span.l3'); var l4 = rs.get(i).select('span.l4 a'); var l5 = rs.get(i).select('span.l5'); var l7 = rs.get(i).select('span.l7'); out.push(String(JSON.stringify({name: E(a2.get(0).text()), bookUrl: String(a2.get(0).attr('href')), author: l3.size() > 0 ? E(l3.get(0).text()) : '', kind: l1.size() > 0 ? E(l1.get(0).text()) : '', lastChapter: l4.size() > 0 ? E(l4.get(0).text()) : '', wordCount: l5.size() > 0 ? E(l5.get(0).text()) : '', coverUrl: '', intro: '', updateTime: l7.size() > 0 ? E(l7.get(0).text()) : ''}))); } if (!hit) { var hs = doc.select('ul.titlelist li'); for (var i = 0; i < hs.size(); i++) { var an = hs.get(i).select('div.zp a'); if (an.size() == 0) { continue; } var lb = hs.get(i).select('div.lb'); var az = hs.get(i).select('div.author'); var zz = hs.get(i).select('div.zz a'); var sj = hs.get(i).select('div.sj'); out.push(String(JSON.stringify({name: E(an.get(0).text()), bookUrl: String(an.get(0).attr('href')), author: az.size() > 0 ? E(az.get(0).text()) : '', kind: lb.size() > 0 ? E(lb.get(0).text()).replace('[', '').replace(']', '') : '', lastChapter: zz.size() > 0 ? E(zz.get(0).text()) : '', wordCount: '', coverUrl: '', intro: '', updateTime: sj.size() > 0 ? E(sj.get(0).text()) : ''}))); } } } out;","bookUrl":"$.bookUrl","coverUrl":"$.coverUrl","intro":"$.intro","kind":"$.kind","lastChapter":"$.lastChapter","name":"$.name","wordCount":"$.wordCount"},"ruleSearch":{"author":"$.author","bookList":"@js:var Jsoup = Packages.org.jsoup.Jsoup; var doc = (result && typeof result.select === 'function') ? result : Jsoup.parse(String(result)); function E(s){ return String(s).trim(); } var out = []; var rows = doc.select('tr'); for (var i = 0; i < rows.size(); i++) { var td = rows.get(i).select('td'); if (td.size() < 7) { continue; } var a = td.get(2).select('a'); if (a.size() == 0) { continue; } var url = String(a.get(0).attr('href')); if (url.indexOf('\/novel\/') < 0) { continue; } var name = E(a.get(0).text()); var auEl = td.get(5).select('span'); var author = auEl.size() > 0 ? E(auEl.get(0).text()) : E(td.get(5).text()); var kindS = E(td.get(1).text()).replace('[', '').replace(']', ''); var ch = td.get(3).select('a'); var last = ch.size() > 0 ? E(ch.get(0).text()) : ''; var wc = ''; if (td.size() > 7) { wc = E(td.get(7).text()); if (wc.indexOf('K') > -1) { wc = wc.split('K').join('000'); } } out.push(String(JSON.stringify({name: name, bookUrl: url, author: author, kind: kindS, lastChapter: last, wordCount: wc, intro: ''}))); } out;","bookUrl":"$.bookUrl","checkKeyWord":"剑来","coverUrl":"$.coverUrl","intro":"$.intro","kind":"$.kind","lastChapter":"$.lastChapter","name":"$.name","wordCount":"$.wordCount"},"ruleToc":{"chapterList":"@js:var Jsoup = Packages.org.jsoup.Jsoup; var doc = (result && typeof result.select === 'function') ? result : Jsoup.parse(String(result)); var out = []; var seen = {}; var ds = doc.select('div.zjbox dd a'); for (var i = 0; i < ds.size(); i++) { var u = String(ds.get(i).attr('href')); var t = String(ds.get(i).text()).trim(); if (u.indexOf('\/chapter\/') < 0 || t.length == 0) { continue; } if (seen[u]) { continue; } seen[u] = 1; out.push(String(JSON.stringify({name: t, url: u}))); } out;","chapterName":"$.name","chapterUrl":"$.url"},"searchUrl":"http:\/\/www.77shuku.info\/modules\/article\/search.php?searchkey={{key}}","weight":0}]