java - 使用 Crawler4j 爬网站点列表

标签 java web-crawler crawler4j

我在加载链接列表时遇到问题;这些链接应该由 controller.addSeed 在循环中使用。这是代码

SelectorString selector = new SelectorString();
List <String> lista = new ArrayList<>();
lista=selector.leggiFile();
String crawlStorageFolder = "/home/usersstage/Desktop/prova";
for(String x : lista){
    System.out.println(x);
    System.out.println("----");
}

// numberOfCrawlers mostra il numero di thread inizializzati per il
// crawling

int numberOfCrawlers = 2; // threads
CrawlConfig config = new CrawlConfig();
config.setCrawlStorageFolder(crawlStorageFolder);

// Non mandare più di una richiesta per secondo (1000 mills || 200
// mills?)
config.setPolitenessDelay(200);

// profondità del crawl. -1 per illimitato
config.setMaxDepthOfCrawling(-1);

// numero massimo di pagine da crawllare
config.setMaxPagesToFetch(-1);

config.setResumableCrawling(false);

// instanza del controller per questo crawl
PageFetcher pageFetcher = new PageFetcher(config);
RobotstxtConfig robotstxtConfig = new RobotstxtConfig();
RobotstxtServer robotstxtServer = new RobotstxtServer(robotstxtConfig,
        pageFetcher);
CrawlController controller = new CrawlController(config, pageFetcher,
        robotstxtServer);
// LOOP used to add several websites (more than 100)
for(int i=0;i<lista.size();i++){
    controller.addSeed(lista.get(i).toString());    
}
controller.start(Crawler.class, numberOfCrawlers);

我需要爬入此站点并仅检索 rss 页面,但爬网列表的输出为空。

最佳答案

您发布的代码显示了如何配置 CrawlController。但如果您只需要爬取rss资源,则需要配置Crawler。 该逻辑属于爬虫上的“shouldVisit”方法。 检查this示例。

关于java - 使用 Crawler4j 爬网站点列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25138938/

相关文章:

java - Angular *NgFor 将数组中的字符串迭代到表 TD 标签

javascript - Python Crawling Pastebin(JavaScript 呈现的网页)

angularjs - 网络爬虫在抓取页面时反转查询参数和路径

java - JPA 查询创建顺序由

java - 我的美元计算器在 Java 中不能完全按照我想要的方式工作?

java - 找不到 com.android.tools.build :gradle:2. 3.+ 的任何匹配项

javascript - 在 JavaScript 中模拟人类点击

java - 网络爬虫与 Html 解析器

grails - 将 src/groovy 类中的值设置为域类属性