西西软件园多重安全检测下载网站、值得信赖的软件下载站!
西西首页 常用软件 软件下载 安卓软件 游戏下载 安卓游戏 MAC应用 驱动下载 安卓电视
系统工具网络工具媒体工具图形图像聊天工具应用软件编程开发手机软件安卓应用电脑安全字体素材

三木猿阅读(电脑小说漫画阅读器)

v1.0
  • 三木猿阅读(电脑小说漫画阅读器)v1.0
  • 软件大小:36.8M
  • 更新时间:2020-09-10 11:20
  • 软件语言:中文
  • 软件厂商:
  • 软件类别:国产软件 / 免费软件 / 阅读器类
  • 软件等级:3级
  • 应用平台:WinXP, Win7, win8
  • 官方网站:暂无
好评:50%
坏评:50%

软件介绍

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

    }

}

软件截图

三木猿阅读(电脑小说漫画阅读器) v1.0
    2021漫画大全
    (100)2021漫画大全关键词
    2021漫画大全为用户带来当前国内市场上比较火热的漫画观看应用,所有资源全部免费阅览,为二次元的玩家带来最大的惊喜,漫画在中国也已经发展多年,但由于日漫的冲击,当前国内漫画市场份额不高,但漫画的市场价值却日益显著,如果你喜欢漫画,不妨也推荐给身边的朋友吧。更多>>

    其他版本下载

    热门评论

    最新评论

    发表评论 查看所有评论(0)

    昵称:
    表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
    字数: 0/500 (您的评论需要经过审核才能显示)

    下载帮助下载帮助西西破解版软件均来自互联网, 如有侵犯您的版权, 请与我们联系。

    TOP
    软件下载