2013-04-09 2 views
1

У меня возникают вопросы только для python, а инструменты, которые я нашел, в основном для python, поэтому новый вопрос: Мне нужно запросить некоторые вещи с HTML-сайта с помощью XPath.Разбирайте страницы HTML с XPath

Мой текущий код выглядит следующим образом:

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 имеет некоторые проблемы с ним следующим образом:

[Fatal Error]: 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-сайты? Или я должен просто использовать Regex на странице?

ответ

2

Есть ли какой-нибудь инструмент, который может лучше читать html-сайты?

Люди говорят высоко о jsoup.

+0

wow, jsoup работает как очарование! – reox

+0

@reox: Круто! Рад, что помогло. –

Смежные вопросы