当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表达式?
发布于 2018-11-29 20:24:51
您使用的是哪个版本的StormCrawler?你是使用Tika进行解析,还是使用Jsoup?AFAIK Jsoup不会修改内容,但Tika可能会这样做。我建议对HTML内容使用基于JSoup的ParserBolt,对其他内容使用Tika。
您可以使用DebugParseFilter查看DOM的外观。
https://stackoverflow.com/questions/53538185
复制相似问题