Я не смог воспроизвести вашу проблему на моей локальной машине. Это может быть недостаток конфигурации на вашей стороне или сайты, на которые вы ссылаетесь, являются особыми.
Вы убедились, что ваш пользовательский crawler-conf.yaml
правильно загружен и textextractor.exclude.tags
включены в загруженную конфигурацию?
Я сделал следующие шаги, пытаясь воспроизвести ваш вопрос:
- Я проверил
1.13
исходные версии StormCrawler.
- Я добавил следующий модульный тест к
TextExtractorTest.java
:
@Test
public void testRemoveHeaderElements() throws IOException {
Config conf = new Config();
HashSet<String> excluded = new HashSet<>();
excluded.add("HEADER");
excluded.add("FOOTER");
excluded.add("SCRIPT");
excluded.add("STYLE");
conf.put(TextExtractor.EXCLUDE_PARAM_NAME, PersistentVector.create(excluded));
<pre><code> HashSet<String> included = new HashSet<>();
included.add("DIV[id=\"maincontent\"]");
included.add("DIV[itemprop=\"articleBody\"]");
included.add("ARTICLE");
conf.put(TextExtractor.INCLUDE_PARAM_NAME, PersistentVector.create(included));
TextExtractor extractor = new TextExtractor(conf);
String content = "<header id=\"section-header\" class=\"section section-header\"></header><h1 class=\"title\" id=\"page-title\">Good Morning..</h1>";
Document jsoupDoc = Parser.htmlParser().parseInput(content,
"http://stormcrawler.net");
String text = extractor.text(jsoupDoc.body());
assertEquals("Good Morning..", text);
}
Этот модульный тест на компоненте TextExtractor
успешно пройден. Затем я загрузил веб-сайт со следующим HTML-кодом на локальный развернутый веб-сервер:
<header id="section-header" class="section section-header">
</header>
Good Morning..
Извлеченное текстовое содержимое: Good Morning..
, которое должно соответствовать вашим требованиям.