spring boot - crawler-spring-boot-starter - 一个简单快捷的爬虫框架(网页爬取,文章遍历)

 

crawler-spring-boot-starter

相比于python爬虫,java爬虫框架要不就是如nutch这般太过重量级,要不就如webcollector一样,因为内置了BerkeleyDB,

所以会经常报一些莫名其妙的错误。为了解决这些问题,本人在开发搜索引擎的过程中编写了一个简单便捷的基于spring boot

的爬虫框架,此框架简单纯净,不内置任何数据库,而且线程利用率高、爬取速度快(当然可以根据需要自己调整)、

使用起来特别方便,希望能对大家有所帮助。

github源码地址:https://github.com/houbbbbb/crawler-spring-boot-starter

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(); // 启动遍历方法
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

这是谁的博客?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值