为什么Elastic Search Web爬网程序不爬网整页内容



我们正在使用Elastic Enterprise Search的应用程序搜索Web爬网程序。我们已经观察到,它不会对HTML页面的所有内容进行爬网和索引。

我们怀疑这可能是由于HTML响应太大或<body>标记太大。

事实并非如此,正文内容和HTML响应的最大限制都在默认限制范围内。

然而,爬虫只抓取页面上的少量内容。我们认为这可能是由于div标记损坏/未关闭造成的,但事实并非如此。

我们验证了HTML响应,没有未关闭的div。

我们还观察了使用Kibana的爬虫日志,上面写着Success 200。但当我们真正检查页面内容时,它甚至还没有被爬行一半。大约20%的内容是由爬网程序爬网的。

我相信网络爬虫在幕后使用Apache Tika。我使用使用ApacheTika的psvm Java代码解析了本地代码中的html内容。我在HTML方面没有遇到任何问题。我可以扫描所有的HTML内容。

为什么会发生这种情况?网络爬虫没有为整页内容编制索引的原因是什么?爬行器是新的,所以没有多少人在使用它,所以没有太多论坛来检查已经回答的问题。

我们最终通过修复HTML内容解决了这个问题。如果遇到不理解的标记或文本,Elastic Enterprise Search的Web爬网程序似乎会终止对页面内容的爬网或提取。

例如,在我们的案例中,它是脚本中的一个简单HTML注释,但该注释中是

<script>
var s = s.contains("<!--cq")"...

它认为&lt--cq是一个HTML标记,并寻找一个结束标记,但我们没有,因为这只是一个脚本。不幸的是,数据弹性排除也不起作用,我们不得不删除这个条件。

原来Elastic WebCrawler使用的解析器非常脆弱。

相关内容

  • 没有找到相关文章

最新更新