三木猿阅读(电脑小说漫画阅读器),小说阅读器软件,三木猿阅读器适配PC平台,可以在电脑上免费浏览全网小说资源,支持分类搜索,支持智能书签,支持离线下载。并且无需注册会员,让您轻松体验PC端看小说的乐趣。本次带来三木猿阅读器pc端资源下载。

三木猿阅读器功能
在线小说资源阅读
离线下载功能
搜索框
多数据源筛选
三木猿阅读器使用
解压后打开exe文件,到浏览器输入http://localhost/,即可开始阅读,数据源有两个biquge和biquge5200,页面借用了起点。
部分代码一览
package com.aaa.data;
import com.aaa.config.SSLHelper;
import com.aaa.dto.BookCatalogueDto;
import com.aaa.entity.BookCatalogue;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.nodes.Node;
import org.jsoup.select.Elements;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import static com.aaa.util.DataProcessing.splitList;
/**
* [url=home.php?mod=space&uid=686208]@AuThor[/url] 杨森
* [url=home.php?mod=space&uid=1248337]@version[/url] 1.0
* @Title: BookCatalogue
* [url=home.php?mod=space&uid=686237]@date[/url] 2020/8/7 15:39
*/
public class BookCatalogueDB {
private static ExecutorService executorService;
public static List<BookCatalogueDto> setDataSource(String dataSource, String bookCod,ExecutorService executorService) {
BookCatalogueDB.executorService =executorService;
SSLHelper.init();
if ("biquge5200".equals(dataSource)) {
return biquge5200(bookCod);
} else if ("biquge".equals(dataSource)) {
return biquge(bookCod);
}
return null;
}
private static List<BookCatalogueDto> biquge5200(String bookCod) {
try {
Map<Integer,List<BookCatalogueDto>> bookCatalogueDtoMaps = new HashMap<>(3);
Pattern pattern = Pattern.compile("<a\\s*href=\"?([\\w\\W]*?)\"?[\\s]*?[^>]>([\\s\\S]*?)(?=</a>)");
Document document = Jsoup.connect("https://www.biquge5200.com/" + bookCod + "/").get();
Elements dd = document.getElementsByTag("dd");
Map<Integer, List<Element>> integerListMap = splitList(dd, 3);
CountDownLatch latch=new CountDownLatch(3);
for (int i = 0; i < 3; i++) {
final int ins=i;
executorService.execute(() -> {
bookCatalogueDtoMaps.put(ins,get(integerListMap.get(ins), bookCod, document, pattern));
latch.countDown();
});
}
latch.await();
List<BookCatalogueDto> bookCatalogueDtos=new ArrayList<>(dd.size());
for (int i = 0; i < 3; i++) {
bookCatalogueDtos.addAll(bookCatalogueDtoMaps.get(i));
}
return bookCatalogueDtos;
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}finally {
executorService.shutdown();
}
return null;
}
public static List<BookCatalogueDto> get(List<Element> dd, String bookCod, Document document, Pattern pattern) {
List<BookCatalogueDto> bookCatalogueDtos = new ArrayList<>(dd.size());
Element imgurl = document.getElementById("fmimg");
Element intro = document.getElementById("intro");
Element info = document.getElementById("info");
Element child = info.child(1);
String h1 = info.select("h1").text();
for (int i = 0; i < dd.size(); i++) {
Element element = dd.get(i);
BookCatalogueDto bookCatalogueDto = new BookCatalogueDto();
BookCatalogue bookCatalogue = new BookCatalogue();
Node node = element.childNode(0);
for (Node e : element.childNodes()) {
if (!"".equals(e.toString())) {
node = e;
}
}
bookCatalogueDto.setCatalogueName(node.childNode(0).toString());
String s1 = node.toString();
Matcher matcher = pattern.matcher(s1);
if (matcher.find()) {
String nameCodeUrl = matcher.group(1);
String insStr = nameCodeUrl.substring(nameCodeUrl.lastIndexOf("/") + 1, nameCodeUrl.lastIndexOf("."));
bookCatalogueDto.setCatalogueCod(Integer.parseInt(insStr));
}
bookCatalogueDto.setBookName(h1);
bookCatalogueDto.setBookIntro(intro.text());
for(Node n :imgurl.childNodes()){
if(n.toString().matches("(.*)img(.*)")){
bookCatalogueDto.setBookImage(imgurl.childNode(0).toString());
}
}
bookCatalogueDto.setBookCod(bookCod);
bookCatalogueDto.setBookAuthor(child.text().replace("作 者:",""));
bookCatalogueDtos.add(bookCatalogueDto);
if (i + 1 < dd.size()) {
Node node1 = dd.get(i + 1).childNode(0);
Matcher matcher1 = pattern.matcher(node1.toString());
if (matcher1.find()) {
String nameCodeUrl = matcher.group(1);
String insStr = nameCodeUrl.substring(nameCodeUrl.lastIndexOf("/") + 1, nameCodeUrl.lastIndexOf("."));
bookCatalogue.setNextCode(Integer.parseInt(insStr));
}
}
}
return bookCatalogueDtos;
}
private static List<BookCatalogueDto> biquge(String bookCod) {
try {
Pattern pattern = Pattern.compile("<a\\s*href=\"?([\\w\\W]*?)\"?[\\s]*?[^>]>([\\s\\S]*?)(?=</a>)");
Document document = Jsoup.connect("https://www.biquge.com/" + bookCod + "/").get();
Map<Integer,List<BookCatalogueDto>> bookCatalogueDtoMaps = new HashMap<>(3);
Elements dd = document.getElementsByTag("dd");
Map<Integer, List<Element>> integerListMap = splitList(dd, 3);
CountDownLatch latch=new CountDownLatch(3);
for (int i = 0; i <3; i++) {
final int ins=i;
executorService.execute(()->{
bookCatalogueDtoMaps.put(ins,get(integerListMap.get(ins), bookCod, document, pattern)) ;
latch.countDown();
});
}
latch.await();
List<BookCatalogueDto> bookCatalogueDtos=new ArrayList<>(dd.size());
for (int i = 0; i < 3; i++) {
bookCatalogueDtos.addAll(bookCatalogueDtoMaps.get(i));
}
return bookCatalogueDtos;
} catch (Exception e) {
e.printStackTrace();
}finally {
executorService.shutdown();
}
return null;
}
}






















大小: 88.4M
大小: 120.0M
PDF转换器(Wondershare PDF Converter)4.1.0.3 中文破解版
Epub阅读软件(Adobe Digital Editions)4.5.0.0 简体中文版
Adobe Acrobat 7.0简体中文版专业注册版
AnyBizSoft PDF Converter2.6.3绿色汉化修正版
CAJViewer(CAJ,PDF,NH文件阅读器)8.0.1.1 官方最新版
Adobe ReaderV10.0.3 官方中文版
91熊猫看书电脑版v0.8.0 官方安装版
CEB文件阅读器V4.5 正式版
百度阅读器v1.2.0.407 官方最新版
chm帮助文档制作软件(WinCHM)v5.43 汉化版
PDF文件转换为WORD(PDF2Word)3.0 免注册汉化版
方正Apabi MakerV5.1.1 个人免费版
方正Apabi Reader(各式电子文档的浏览阅读工具)V3.26绿色中文免费版
eREAD阅读器V8.0.20091118绿色中文免费版
起点小说阅读下载搜索器v5.0 绿色免费版