首页  软件  游戏  图书  电影  电视剧

请输入您要查询的软件:

 

软件 三木猿阅读(电脑小说漫画阅读器) v1.0 绿色版 
内容

三木猿阅读(电脑小说漫画阅读器)小说阅读器软件,三木猿阅读器适配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;

}

}

标签 小说漫画,阅读器,三木猿
缩略图
软件名称 三木猿阅读(电脑小说漫画阅读器) v1.0 绿色版
软件图标
软件大小 35.6MB
发布时间
软件平台
软件语言 简体中文
软件授权 免费软件
操作系统 Windows平台
系统类型
用户评分 4
软件版本
官方网站
官方网址
软件截图
软件总类 电脑游戏
软件大类 软件下载-应用软件-浏览阅读-电脑小说漫画阅读器下载
软件小类 浏览阅读
开发者
主办单位名称
ICP备案名
备案号
使用年龄
下载链接
攻略教程
详细介绍
操控设备
隐私政策
查看权限
敏感权限获取说明
软件类型 国产软件
安全警示 适度休息有益身心健康,请勿长期沉迷于使用电脑或刷手机。
随便看

 

传承兰台文化,共同保存历史记忆!兰台网收藏软件、游戏、图片、图书、电影、电视剧等互联网档案,是免费和可借阅文本、电影、音乐等档案的数字图书馆。

 

Copyright © 2004-2025 xlantai.com All Rights Reserved
更新时间:2025/5/8 5:36:17