Stormcrawler XPathFilter-内部表示

时间:2018-11-29 11:38:09

标签: stormcrawler

Stormcrawler获取网站时,会将配置的XPathFilter应用于不是原始HTML表示形式。例如,插入了标签,或者DIV变为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表达式。是否可以通过将XPathFilter表达式应用于原始网站源代码的方式来配置Stormcrawler?

1 个答案:

答案 0 :(得分:0)

您正在使用哪个版本的StormCrawler?您是使用Tika进行解析还是Jsoup? AFAIK Jsoup不会修改内容,但Tika可能会修改。我建议将基于JSoup的ParserBolt用于HTML内容,并将Tika用于其他任何内容。

您可以使用DebugParseFilter查看DOM的外观。