From a713b66c1b1244d8bf1e1c9240212f2e03327434 Mon Sep 17 00:00:00 2001 From: xiongxiaoyang <773861846@qq.com> Date: Thu, 10 Dec 2020 19:04:44 +0800 Subject: [PATCH] =?UTF-8?q?=E7=88=AC=E8=99=AB=E4=BC=98=E5=8C=96=EF=BC=8C?= =?UTF-8?q?=E5=85=BC=E5=AE=B9=E6=9B=B4=E5=A4=9A=E6=BA=90=E7=AB=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java2nb/novel/core/crawl/CrawlParser.java | 33 ++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/novel-crawl/src/main/java/com/java2nb/novel/core/crawl/CrawlParser.java b/novel-crawl/src/main/java/com/java2nb/novel/core/crawl/CrawlParser.java index f9e144f..734e4e0 100644 --- a/novel-crawl/src/main/java/com/java2nb/novel/core/crawl/CrawlParser.java +++ b/novel-crawl/src/main/java/com/java2nb/novel/core/crawl/CrawlParser.java @@ -185,7 +185,38 @@ public class CrawlParser { String indexName = indexNameMatch.group(1); if (hasIndex == null || !StringUtils.deleteWhitespace(hasIndex.getIndexName()).equals(StringUtils.deleteWhitespace(indexName))) { - String contentUrl = ruleBean.getBookContentUrl().replace("{bookId}", sourceBookId).replace("{indexId}", indexIdMatch.group(1)); + + String sourceIndexId = indexIdMatch.group(1); + String bookContentUrl = ruleBean.getBookContentUrl(); + int calStart = bookContentUrl.indexOf("{cal_"); + if(calStart != -1){ + //内容页URL需要进行计算才能得到 + String calStr = bookContentUrl.substring(calStart,calStart+bookContentUrl.substring(calStart).indexOf("}")); + String[] calArr = calStr.split("_"); + int calType = Integer.parseInt(calArr[1]); + if(calType == 1) { + ///{cal_1_1_3}_{bookId}/{indexId}.html + //第一种计算规则,去除第x个参数的最后y个字母 + int x = Integer.parseInt(calArr[2]); + int y = Integer.parseInt(calArr[3]); + String calResult; + if (x == 1) { + calResult = sourceBookId.substring(0, sourceBookId.length() - y); + } else { + calResult = sourceIndexId.substring(0, sourceBookId.length() - y); + } + + if(calResult.length() == 0){ + calResult = "0"; + + } + + bookContentUrl = bookContentUrl.replace(calStr+"}", calResult); + } + + } + + String contentUrl = bookContentUrl.replace("{bookId}", sourceBookId).replace("{indexId}", sourceIndexId); //查询章节内容 String contentHtml = getByHttpClientWithChrome(contentUrl);