Я использую Crawler4j, чтобы просто получить HTML с обходных страниц. Он успешно сохраняет извлеченный HTML для моего тестового сайта около 50 страниц. Он использует метод shoudVisit
, который я реализовал, и использует метод visit
, который я реализовал. Они оба работают без проблем. Файлы также написаны без проблем. Но после того, как все страницы были посещены и сохранены, он не прекращает блокирование:Crawler4j сохраняет блокировку после обхода
System.out.println("Starting Crawl");
controller.start(ExperimentCrawler.class, numberOfCrawlers);
System.out.println("finished crawl");
Второй println
оператор никогда не выполняет. В моем хранилище искатель создал папку с именем «frontier», в которой он содержит блокировку (я не могу удалить ее, так как искатель все еще ее использует).
Вот настройки конфигурации Я отдал его (хотя это, кажется, не имеет значения, какие настройки я установил):
config.setCrawlStorageFolder("/data/crawl/root");
config.setMaxDepthOfCrawling(1);
config.setPolitenessDelay(1000);
config.setMaxPagesToFetch(50);
config.setConnectionTimeout(500);
Существует ошибка, которая появляется около одной минуты после сканирования отделки:
java.lang.NullPointerException at com.sleepycat.je.Database.trace(Database.java:1816) at com.sleepycat.je.Database.sync(Database.java:489) at edu.uci.ics.crawler4j.frontier.WorkQueues.sync(WorkQueues.java:187) at edu.uci.ics.crawler4j.frontier.Frontier.sync(Frontier.java:182) at edu.uci.ics.crawler4j.frontier.Frontier.close(Frontier.java:192) at edu.uci.ics.crawler4j.crawler.CrawlController$1.run(CrawlController.java:232) at java.lang.Thread.run(Unknown Source)
Что можно держать искателю от выхода? Что он пишет в папку «frontier»?
если вы найдете мой ответ подходящим, можете ли вы его принять? – Chaiavi
Это, безусловно, полезная информация, но я не хочу отмечать ответ как принятый, прежде чем попробовать. Я дам новую версию, когда смогу. Это было какое-то время, поэтому я больше не работаю над тем же проектом. – Indigenuity
Уверенный, справедливый – Chaiavi