【问题标题】:Handling special entities like & nbsp; , & pound; in HtmlCleaner处理特殊实体,如   , & 磅;在 HtmlCleaner
【发布时间】:2010-11-30 16:26:05
【问题描述】:

我正在使用 HtmlCleaner 库进行 html 内容提取。它运行良好,但几乎没有限制。

它无法处理特殊字符,如 &pound 或引号等。例如。 对于 url:http://www.basicelegancefurnishings.co.uk/alaska-3-and-2-seater-sofa-setspan-classukmadespan-p-280.html,在给 xpath 价格时,它给了我“&磅;”代替£

是否有任何我们可以在 htmlcleaner 中设置的属性来处理这个或任何其他解决方案。

谢谢

吉腾德拉

【问题讨论】:

    标签: java jsp web-crawler web-scraping


    【解决方案1】:

    不,我不相信 HtmlCleaner 可以做到这一点。但是,您可以使用Apache Commons StringEscapeUtils 来“取消转义”html,如下所示:

    StringEscapeUtils.unescapeHtml("£679.00");
    

    将产生£679.00

    我建议你试试JSoup,而不是 HtmlCleaner。

    【讨论】:

    • 我不知道 StringEscapeUtils。谢谢你。在我的例子中,内容提取是基于 xpaths 的。 Jsoup 支持吗?
    • jsoup 支持 CSS 选择器进行内容提取;应该做你需要的。
    【解决方案2】:

    我使用的htmlcleaner版本是2.2,org.htmlcleaner.CleanerProperties - setTransSpecialEntitiesToNCR(true)对我有用。虽然我必须使用string.replace(" ", " ") 来使我得到的html 内容完全正确。

    【讨论】:

      【解决方案3】:

      现在可以通过 org.htmlcleaner.CleanerProperties - setTransSpecialEntitiesToNCR(true) 来完成。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-22
      • 1970-01-01
      • 1970-01-01
      • 2014-12-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多