西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
西西首頁 電腦軟件 安卓軟件 電腦游戲 安卓游戲 排行榜 專題合集

三木猿閱讀(電腦小說漫畫閱讀器)

v1.0
  • 三木猿閱讀(電腦小說漫畫閱讀器)v1.0
  • 軟件大小:36.8M
  • 更新時間:2020-09-10 11:20
  • 軟件語言:中文
  • 軟件廠商:
  • 軟件類別:國產(chǎn)軟件 / 免費軟件 / 閱讀器類
  • 軟件等級:3級
  • 應用平臺:WinXP, Win7, win8
  • 官方網(wǎng)站:暫無
  • 應用備案:
好評:50%
壞評:50%

本類精品

軟件介紹

三木猿閱讀(電腦小說漫畫閱讀器),小說閱讀器軟件,三木猿閱讀器適配PC平臺,可以在電腦上免費瀏覽全網(wǎng)小說資源,支持分類搜索,支持智能書簽,支持離線下載。并且無需注冊會員,讓您輕松體驗PC端看小說的樂趣。本次帶來三木猿閱讀器pc端資源下載。

三木猿閱讀(電腦小說漫畫閱讀器)

三木猿閱讀器功能

在線小說資源閱讀

離線下載功能

搜索框

多數(shù)據(jù)源篩選

三木猿閱讀器使用

解壓后打開exe文件,到瀏覽器輸入http://localhost/,即可開始閱讀,數(shù)據(jù)源有兩個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

其他版本下載

發(fā)表評論

昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
查看所有(0)條評論 > 字數(shù): 0/500

TOP
軟件下載