1. 程式人生 > >AiPa — 小巧、靈活的 Java 多執行緒爬蟲框架

AiPa — 小巧、靈活的 Java 多執行緒爬蟲框架

1.框架簡介

AiPa 是一款小巧,靈活,擴充套件性高的多執行緒爬蟲框架。

AiPa 依賴當下最簡單的HTML解析器Jsoup。

AiPa 只需要使用者提供網址集合,即可在多執行緒下自動爬取,並對一些異常進行處理。

2.下載安裝

AiPa是一個小巧的、只有390KB的jar包。

下載該Jar包匯入到你的專案中即可使用。

jar包存放在Git,下載:AIPa.jar

3.如何使用

先來看下一個簡單完整的示例程式:

必須實現的介面

<span style="color:#f8f8f2"><code class="language-none">public class MyAiPaWorker implements AiPaWorker {

    @Override
    public String run(Document doc, AiPaUtil util) {
        //使用JSOUP進行HTML解析獲取想要的div節點和屬性
        //儲存在資料庫或本地檔案中
        //新增aiPaUtil工具類可以再次請求網址
        return doc.title() + doc.body().text();
    }

    @Override
    public Boolean fail(String link) {
        //任務執行失敗
        //可以記錄失敗網址
        //記錄日誌
        return false;
    }
}</code></span>

main方法

<span style="color:#f8f8f2"><code class="language-none">public static void main(String[] args) throws InstantiationException, IllegalAccessException, ExecutionException, InterruptedException {
        //準備網址集合
        List<String> linkList = new ArrayList<>();
        linkList.add("http://jb39.com/jibing/FeiQiZhong265988.htm");
        linkList.add("http://jb39.com/jibing/XiaoErGuoDu262953.htm");
        linkList.add("http://jb39.com/jibing/XinShengErShiFei250995.htm");
        linkList.add("http://jb39.com/jibing/GaoYuanFeiShuiZhong260310.htm");
        linkList.add("http://jb39.com/zhengzhuang/LuoYin337449.htm");
        //第一步:新建AiPa例項
        AiPaExecutor aiPaExecutor = AiPa.newInstance(new MyAiPaWorker()).setCharset(Charset.forName("GBK"));
        //第二步:提交任務
        for (int i = 0; i < 10; i++) {
            aiPaExecutor.submit(linkList);
        }
        //第三步:讀取返回值
        List<Future> futureList = aiPaExecutor.getFutureList();
        for (int i = 0; i < futureList.size(); i++) {
            //get() 方法會阻塞當前執行緒直到獲取返回值
            System.out.println(futureList.get(i).get());
        }
        //第四步:關閉執行緒池
        aiPaExecutor.shutdown();
    }</code></span>

通過AiPa.newInstance()方法直接建立一個新的AiPa例項,該方法必須要傳入 AiPaWorker 介面的實現類。

原文連結