[{"bookSourceComment":"\/\/无名25.05.01修\n\/\/25.05.02用电脑ua解决搜索下一页，验证成功跳转后请重新搜索","bookSourceGroup":"源社区","bookSourceName":"篱笆好文学","bookSourceType":0,"bookSourceUrl":"https:\/\/www.libahao.com\/","bookUrlPattern":"","concurrentRate":"","coverDecodeJs":"","customOrder":3,"enabled":true,"enabledCookieJar":true,"enabledExplore":true,"exploreUrl":"","header":"{\"User-Agent\": \"Mozilla\/5.0 (Linux; Android 14; 2312DRAADC) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/132.0.0.0 Mobile Safari\/537.36\"}","lastUpdateTime":"1746180515869","loginCheckJs":"","respondTime":180000,"ruleBookInfo":{"author":"[property=\"og:novel:author\"]@content","coverUrl":"img@src","intro":"[property=\"og:description\"]@content","kind":"[property~=category|status|update_time]@content","lastChapter":"[property~=las?test_chapter_name]@content","name":"[property=\"og:novel:book_name\"]@content","tocUrl":""},"ruleContent":{"content":".chapter-content@html","nextContentUrl":"text.下一页@href"},"ruleExplore":{"author":"","bookList":"","bookUrl":"","coverUrl":"","intro":"","name":""},"ruleSearch":{"author":"$.author","bookList":"<js>\nif(result.match(\/百度安全验证\/)){\n\txb=(baseUrl)+\",\"+JSON.stringify({\n\t\t\"headers\":{\n\t\t\t\"User-Agent\": \"Mozilla\/5.0 (X11; Linux x86 64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/127.0.0.0 Safari\/537.36\"\n}})\njava.startBrowserAwait(xb,\"验证\")\nresult=java.ajax(xb)\n\t}\n\nvar bookList = [];\nvar finalJsonOutput = null;\ntry {\n    var doc = result;\n    if (!doc) {\n        throw new Error(\"无法解析 HTML\");\n    }\n    var containers = org.jsoup.Jsoup.parse(doc).select(\"div.c-container.result-op, div.c-container.result\");\n    java.log(\"找到 \" + containers.size() + \" 个\");\n    for (var i = 0; i < containers.size(); i++) {\n        var container = containers.get(i);\n        var book = {};\n        if (container.hasClass(\"result-op\")) {            \n            java.log(\"处理第 \" + (i + 1) + \" 个 (result-op)\");            \n            book.bookUrl = container.attr(\"mu\") || null;             \n            var nameElement = container.selectFirst(\"a\");\n            if (nameElement) {\n                var nameText = nameElement.text().trim();\n                book.name = (nameText) ? nameText : \"未找到\";\n                if (!nameText) {\n                    \/\/java.log(\"未找到书名，a 标签内容: \" + nameElement.outerHtml());\n                }\n            } else {\n                book.name = \"未找到\";\n                \/\/java.log(\"未找到书名对应的 a 标签\");\n            }            \n            var authorElement = container.selectFirst(\"span\");\n            if (authorElement) {\n                var authorText = authorElement.text().trim();\n                var prefix = \"作者： \"; \n                if (authorText.includes(prefix)) {\n                    book.author = authorText.substring(prefix.length).trim();\n                } else {\n                    book.author = \"未找到\";\n                    \/\/java.log(\"作者信息未找到或格式不符: \" + authorElement.outerHtml());\n                }\n            } else {\n                book.author = \"未找到\";\n                \/\/java.log(\"未找到作者对应的 span 标签\");\n            }            \n            var introElement = container.selectFirst(\"div.text_2NOr6\");\n            var introText = null;\n            if (introElement) {\n                introText = introElement.text().trim();\n                book.intro = introText;                 \n                book.kind = null; \n                if (!introText.startsWith(\"简介:\")) {\n                    var kindPrefix = \"类别:\";\n                    var kindIndex = introText.indexOf(kindPrefix);\n                    if (kindIndex !== -1) {\n                        var kindTemp = introText.substring(kindIndex + kindPrefix.length).trim();\n                        var chapterPrefix = \"最新章节\"; \n                        var chapterIndex = kindTemp.indexOf(chapterPrefix);\n                        if (chapterIndex !== -1) {\n                            book.kind = kindTemp.substring(0, chapterIndex).trim(); \n                        } else {\n                            book.kind = kindTemp; \n                        }\n                    } else {\n                        \/\/java.log(\"未在 intro 文本中找到 '类别:' 用于提取 kind: \" + introText);\n                    }\n                } else {\n                    \/\/java.log(\"intro 文本以 '简介:' 开头，kind 设为 null\");\n                }\n            } else {\n                book.intro = null; \n                book.kind = null;\n                \/\/java.log(\"未找到 intro\/kind 对应的 div.text_2NOr6 标签\");\n            }            \n            var allAElements = container.select(\"a\");\n            if (allAElements.size() >= 2) {\n                book.lastChapter = allAElements.get(allAElements.size() - 2).text().trim();\n            } else {\n                book.lastChapter = null; \n                \/\/java.log(\"a 标签数量不足，无法提取倒数第二个作为 lastChapter\");\n            }\n        } else if (container.hasClass(\"result\")) {            \n            java.log(\"处理第 \" + (i + 1) + \" (result)\");            \n            book.bookUrl = container.attr(\"mu\") || null;            \n            var nameElement = container.selectFirst(\"a\");\n            if (nameElement) {\n                var nameText = nameElement.text().trim();\n                book.name = (nameText) ? nameText : \"未找到\";\n                if (!nameText) {\n                   \/\/java.log(\"未找到书名，a 标签内容: \" + nameElement.outerHtml());\n                }\n            } else {\n                book.name = \"未找到\";\n                \/\/java.log(\"未找到书名对应的 a 标签\");\n            }            \n            var contentRightElement = container.selectFirst(\".content-right_1THTn\");\n            if (contentRightElement) {\n                var fullText = contentRightElement.text().trim();\n                book.intro = fullText;                 \n                book.author = null; \n                var authorPrefix = \"作者:\"; \n                var authorIndex = fullText.indexOf(authorPrefix);\n                var kindSeparator = \"类别\"; \n                var kindIndexForAuthor = fullText.indexOf(kindSeparator);\n                if (authorIndex !== -1) { \n                    var startIndex = authorIndex + authorPrefix.length;\n                    var endIndex = (kindIndexForAuthor !== -1 && kindIndexForAuthor > authorIndex) ? kindIndexForAuthor : fullText.length;\n                    book.author = fullText.substring(startIndex, endIndex).trim();\n                } else {\n                    \/\/java.log(\"未在 .content-right_1THTn 中找到 '作者:'\");\n                }                \n                book.kind = null; \n                var kindPrefix = \"类别:\"; \n                var kindIndex = fullText.indexOf(kindPrefix);\n                var chapterSeparator = \"最新章节\"; \n                var chapterIndexForKind = fullText.indexOf(chapterSeparator);\n                if (kindIndex !== -1) { \n                    var startIndex = kindIndex + kindPrefix.length;\n                    var endIndex = (chapterIndexForKind !== -1 && chapterIndexForKind > kindIndex) ? chapterIndexForKind : fullText.length;\n                    book.kind = fullText.substring(startIndex, endIndex).trim();\n                } else {\n                    \/\/java.log(\"未在 .content-right_1THTn 中找到 '类别:'\");\n                }                \n                book.lastChapter = null; \n                var chapterPrefix = \"最新章节:\"; \n                var chapterIndex = fullText.indexOf(chapterPrefix);\n                var updateSeparator = \"最新更新\"; \n                var updateIndex = fullText.indexOf(updateSeparator);\n\n                if (chapterIndex !== -1) { \n                    var startIndex = chapterIndex + chapterPrefix.length;\n                    var endIndex = (updateIndex !== -1 && updateIndex > chapterIndex) ? updateIndex : fullText.length;\n                    book.lastChapter = fullText.substring(startIndex, endIndex).trim();\n                } else {\n                    \/\/java.log(\"未在 .content-right_1THTn 中找到 '最新章节:'\");\n                }\n            } else {                \n                book.author = null;\n                book.kind = null;\n                book.lastChapter = null;\n                book.intro = null;\n                \/\/java.log(\"未找到 .content-right_1THTn 元素\");\n            }\n        } else {\n            \/\/java.log(\"跳过未知类型的容器: \" + container.outerHtml().substring(0, 100));\n            continue; \n        }        \n        bookList.push(book);\n    }\n    var finalResult = {\n        bookList: bookList \n    };\n    finalJsonOutput = JSON.stringify(finalResult);\n} catch (e) {\n    java.log(\"错误: \" + e);\n    finalJsonOutput = JSON.stringify({\n        bookList: []\n    }); \n}\nresult = finalJsonOutput;\n<\/js>\n$.bookList","bookUrl":"$.bookUrl@js:result+',{webView:“true”}'","checkKeyWord":"斗破苍穹","coverUrl":"","intro":"$.intro","kind":"$.kind","lastChapter":"$.liastChapter","name":"$.name","wordCount":""},"ruleToc":{"chapterList":".chapter-list.1@li","chapterName":"a@text","chapterUrl":"a@href@js:result = \"https:\/\/m.libahao.com\" + result"},"searchUrl":"https:\/\/www.baidu.com\/s?wd=site%3Awww.libahao.com + %20{{key}}&pn={{(page - 1) * 10}},{\n    \"headers\": {\"User-Agent\": \"Mozilla\/5.0 (X11; Linux x86 64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/127.0.0.0 Safari\/537.36\"},\n    \"webView\": true\n}","variableComment":"","weight":0}]