crawler-spring-boot-starter - 一個簡單快捷的爬蟲框架(網頁爬取,文章遍歷)

crawler-spring-boot-starter

相比於python爬蟲,java爬蟲框架要不就是如nutch這般太太重量級,要不就如webcollector同樣,由於內置了BerkeleyDB,java

因此會常常報一些莫名其妙的錯誤。爲了解決這些問題,本人在開發搜索引擎的過程當中編寫了一個簡單便捷的基於spring bootpython

的爬蟲框架,此框架簡單純淨,不內置任何數據庫,並且線程利用率高、爬取速度快(固然能夠根據須要本身調整)、git

使用起來特別方便,但願能對你們有所幫助。github

github源碼地址:github.com/houbbbbb/cr…

spring boot 爬蟲框架

中央倉庫的maven依賴

<dependency>
  <groupId>com.github.houbbbbb</groupId>
  <artifactId>crawler-spring-boot-starter</artifactId>
  <version>0.0.1</version>
</dependency>
複製代碼

使用方式

配置方式:application.yml, 若是不配置,默認值:線程池大小:poolSize=6; 超時時間:timeout=2000;

crawler:
  pool-size: 6
  timeout: 2000
複製代碼

代碼示例

注意:因爲涉及多線程,不能使用@Test測試,必須用http請求的方式

@Autowired
WebCrawler webCrawler; // 網頁內容爬取
@Autowired
FileCrawler fileCrawler;

// 網頁爬取
void crawlerTest() {
    Starter starter = webCrawler.getStarter(); // 獲取爬取啓動類
    starter.setRootUrl("http://www.xxx.com/"); // 要爬取的根url
    starter.setParser((document, tran) -> {    // 網頁解析器,能夠自定義解析網頁文檔
        Elements elements = document.select("a");
        for(Element element: elements) {
            String url = element.absUrl("href"); // 能夠獲取完整的url
            System.out.println("url " + url);
            new Requester(tran, url); // 將要爬取的url加入到任務隊列
        }
    });
    starter.start(); // 啓動爬取方法
}

// 本地文件遍歷
void fileCrawlerTest() {
    FileStarter starter = fileCrawler.getStarter(); // 獲取文件遍歷啓動器
    starter.setRootUrl("G:\\exc\\hhh"); // 設置文章根目錄,只要設置好根目錄,就是自動遍歷目錄中全部文件
    starter.setParser((file) -> { // 文件解析器,自定義實現,能夠從這裏獲取到文件路徑
        System.out.println("fileName " + file.getFileName()); // 
    });
    starter.start(); // 啓動遍歷方法
}
複製代碼
相關文章
相關標籤/搜索