package com.crawler.crawler.impl; import com.crawler.crawler.BaseCrawler; import com.crawler.model.CrawlerData; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; public class ExampleCrawler extends BaseCrawler { @Override public String getCrawlerName() { return "ExampleCrawler"; } @Override protected List parseHtml(String html) { List results = new ArrayList<>(); String cleanHtml = html.replaceAll("\\s+", " ").replaceAll(">\\s*<", "><"); Pattern linkPattern = Pattern.compile("]*href\\s*=\\s*[\"']([^\"']+)[\"'][^>]*>([^<]+)", Pattern.CASE_INSENSITIVE); Matcher matcher = linkPattern.matcher(cleanHtml); int count = 0; while (matcher.find() && count < 10) { CrawlerData data = new CrawlerData(); data.setTitle(cleanText(matcher.group(2))); data.setUrl(matcher.group(1)); results.add(data); count++; } return results; } private String cleanText(String text) { if (text == null) return null; return text.replaceAll("<[^>]+>", "").trim(); } }