AiPa — 小巧、靈活的 Java 多執行緒爬蟲框架
阿新 • • 發佈:2018-12-14
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 介面的實現類。