使用XPath解析损坏的HTML站点

时间:2013-04-09 07:41:28

标签: java html xml xpath

我这里只收到python的问题,我发现的工具主要是python,所以新问题: 我需要使用XPath从HTML站点查询一些内容。

我目前的代码如下:

URL url = new URL("http://somesite.com");
connection = (HttpURLConnection) url.openConnection();
connection.connect();

Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder()
                                     .parse(new InputSource(connection.getInputStream()));

XPathFactory xPathfactory = XPathFactory.newInstance();
XPath xpath = xPathfactory.newXPath();
XPathExpression expr = xpath.compile("//span[@class='a-class']");
String price = (String) expr.evaluate(doc, XPathConstants.STRING);

问题是,页面被破坏或者XPath有一些问题需要阅读:

  

[致命错误]:4:254:实体名称必须紧跟'&'在实体参考中。
  org.xml.sax.SAXParseException; lineNumber:4; columnNumber:254;实体名称必须紧跟'&'在实体参考中。
    在com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:251)
    在com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:300)

是否有任何工具可以更好地读取HTML网站?或者我应该在页面上使用正则表达式?

1 个答案:

答案 0 :(得分:2)

  

是否有任何工具可以更好地读取HTML网站?

人们高度评价jsoup