Stormcrawler XPathFilter - внутреннее представление - PullRequest
0 голосов
/ 29 ноября 2018

Когда Stormcrawler выбирает веб-сайт, он применяет настроенный XPathFilter к представлению HTML, которое не является исходным.Например, теги вставлены, или DIVs станут H3 и т. Д. Например, следующая конфигурация помещает HTML-код в Elasticsearch, который не является оригинальным:

 {
   "com.digitalpebble.stormcrawler.parse.ParseFilters": [
   {
   "class": "com.digitalpebble.stormcrawler.parse.filter.XPathFilter",
   "name": "XPathFilter",
   "params": {
    "canonical": "//*[@rel=\"canonical\"]/@href",
    "parse.html": [
        "//HTML"
     ]
   }
 },
{
  "class": "com.digitalpebble.stormcrawler.parse.filter.DomainParseFilter",
  "name": "DomainParseFilter",
  "params": {
    "key": "domain",
    "byHost": false
   }
  }
 ]
}

Это затрудняет написание выражений XPath на основеоригинальный исходный код сайта.Есть ли способ настроить Stormcrawler таким образом, чтобы он применял выражения XPathFilter к исходному коду исходного сайта?

1 Ответ

0 голосов
/ 29 ноября 2018

На какой версии StormCrawler вы работаете?Вы используете Tika для разбора или Jsoup?AFAIK Jsoup не изменяет содержание, но Тика, вероятно, делает.Я бы порекомендовал использовать основанный на JSoup ParserBolt для HTML-контента и Tika для всего остального.

Вы можете использовать DebugParseFilter , чтобы увидеть, как выглядит DOM.

...