如何从 StormCrawler 提取的文本中排除脚本和样式标签?
How to exclude script and style tags from text extracted by StormCrawler?
我正在使用 Storm 爬虫 1.10 和 Elastic Search 6。3.x。我在配置中添加了 http.content.limit=-1。爬虫运行良好,当我检查结果函数时,css 数据显示在索引中。是否有可能在 parserfilter.json 中应用 xpath 过滤器(例如:<script>
和 <style>
)或任何其他限制爬虫以避免这些的建议。我正在分享一些显示在记录中的示例数据。
document.getElementById('cloak6258804dfa0d517eaedf4b69a99ed997').innerHTML = '';
var prefix = 'ma' + 'il' + 'to';
var path = 'hr' + 'ef' + '=';
var addy6258804dfa0d517eaedf4b69a99ed997 = 'admissions' + '@';
addy6258804dfa0d517eaedf4b69a99ed997 = addy6258804dfa0d517eaedf4b69a99ed997 + 'auk' + '.' + 'org';
var addy_text6258804dfa0d517eaedf4b69a99ed997 = 'admissions' + '@' + 'auk' + '.' + 'org';document.getElementById('cloak6258804dfa0d517eaedf4b69a99ed997').innerHTML += '<a ' + path + '\'' + prefix + ':' + addy6258804dfa0d517eaedf4b69a99ed997 + '\'>'+addy_text6258804dfa0d517eaedf4b69a99ed997+'<\/a>'
XPathFilter serves a different purpose which is to extract metadata from Xpath expressions. There is also the ContentFilter 更接近您的需要,因为它允许您将提取文本的范围限制为一组 xpath,但是它没有提供过滤特定标签和保留其他所有内容。
现阶段你最好的选择可能是使用基于 Tika 的 ParserBolt:它可以配置 mapper implementation which by default is set to identityMapper but could use any other implementation provided by Tika or yourself, see Tika documentation on HTML mapper。
随时在 GH 上提出问题,请求一种新型的 parseFilter 来排除一些 HTML 元素,因为这可能很有用。我们有一个 related issue for googleon / googleoff tags,这可能是实现它的一种方式。
编辑:我们已经发布了 TextExtractor,参见 StormCrawler 1.13 release announcement
我正在使用 Storm 爬虫 1.10 和 Elastic Search 6。3.x。我在配置中添加了 http.content.limit=-1。爬虫运行良好,当我检查结果函数时,css 数据显示在索引中。是否有可能在 parserfilter.json 中应用 xpath 过滤器(例如:<script>
和 <style>
)或任何其他限制爬虫以避免这些的建议。我正在分享一些显示在记录中的示例数据。
document.getElementById('cloak6258804dfa0d517eaedf4b69a99ed997').innerHTML = '';
var prefix = 'ma' + 'il' + 'to';
var path = 'hr' + 'ef' + '=';
var addy6258804dfa0d517eaedf4b69a99ed997 = 'admissions' + '@';
addy6258804dfa0d517eaedf4b69a99ed997 = addy6258804dfa0d517eaedf4b69a99ed997 + 'auk' + '.' + 'org';
var addy_text6258804dfa0d517eaedf4b69a99ed997 = 'admissions' + '@' + 'auk' + '.' + 'org';document.getElementById('cloak6258804dfa0d517eaedf4b69a99ed997').innerHTML += '<a ' + path + '\'' + prefix + ':' + addy6258804dfa0d517eaedf4b69a99ed997 + '\'>'+addy_text6258804dfa0d517eaedf4b69a99ed997+'<\/a>'
XPathFilter serves a different purpose which is to extract metadata from Xpath expressions. There is also the ContentFilter 更接近您的需要,因为它允许您将提取文本的范围限制为一组 xpath,但是它没有提供过滤特定标签和保留其他所有内容。
现阶段你最好的选择可能是使用基于 Tika 的 ParserBolt:它可以配置 mapper implementation which by default is set to identityMapper but could use any other implementation provided by Tika or yourself, see Tika documentation on HTML mapper。
随时在 GH 上提出问题,请求一种新型的 parseFilter 来排除一些 HTML 元素,因为这可能很有用。我们有一个 related issue for googleon / googleoff tags,这可能是实现它的一种方式。
编辑:我们已经发布了 TextExtractor,参见 StormCrawler 1.13 release announcement