【问题标题】:Clean up HTML input using HTMLcleaner使用 HTMLcleaner 清理 HTML 输入
【发布时间】:2015-05-22 21:25:51
【问题描述】:

我正在使用 HTMLCleaner 库编写一个 java 项目并将输出保存为 XML 文件这是我编写的代码:

URL urlSB = new URL("http://www.groupon.com/browse/chicago?z=skip");
URLConnection urlConnection = urlSB.openConnection();
urlConnection.addRequestProperty("User-Agent", "google.com");
urlConnection.connect();
HtmlCleaner cleaner = new HtmlCleaner();
CleanerProperties props = cleaner.getProperties();
props.setNamespacesAware(false);
TagNode tagNodeRoot = cleaner.clean(urlConnection.getInputStream());

// serialize to xml file
new PrettyXmlSerializer(props).writeToFile(
        tagNodeRoot , "cleaned.xml", "utf-8"
);

问题是项目运行后cleaned.xml文件为空。

【问题讨论】:

    标签: java html htmlcleaner


    【解决方案1】:

    问题是您尝试访问的页面被配置为重定向到 HTTPS。无论出于何种原因,这都不起作用,因此输入流为空。如果您将 URL 更改为 HTTPS,则可以正常工作:

    URL urlSB = new URL("https://www.groupon.com/browse/chicago?z=skip");
    URLConnection urlConnection = urlSB.openConnection();
    urlConnection.addRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:5.0) Gecko/20100101 Firefox/25.0");
    urlConnection.connect();
    HtmlCleaner cleaner = new HtmlCleaner();
    CleanerProperties props = cleaner.getProperties();
    props.setNamespacesAware(false);
    TagNode tagNodeRoot = cleaner.clean(urlConnection.getInputStream());
    new PrettyXmlSerializer(props).writeToFile(tagNodeRoot, "cleaned.xml", "utf-8");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-01
      • 2018-02-16
      • 2011-11-03
      • 2011-07-27
      • 1970-01-01
      • 1970-01-01
      • 2012-07-15
      相关资源
      最近更新 更多