2010-02-19 4 views

ответ

1

Это на самом деле довольно сложно, потому что произвольные HTML-страницы иногда искажаются (основные браузеры довольно терпимы). Вы можете посмотреть в swing html parser, который я никогда не пробовал, но похоже, что это лучший вариант. Вы также можете попробовать что-то вдоль линий этого и обрабатывать любые исключения синтаксического анализа, которые могут возникнуть (хотя я только когда-либо пробовал это для XML):

import java.io.File; 
import org.w3c.dom.Document; 
import org.w3c.dom.*; 

import javax.xml.parsers.DocumentBuilderFactory; 
import javax.xml.parsers.DocumentBuilder; 
import org.xml.sax.SAXException; 
import org.xml.sax.SAXParseException; 

... 

try { 
    DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance(); 
    DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder(); 
    Document doc = docBuilder.parse (InputStreamYouBuiltEarlierFromAnHTTPRequest); 
} 
catch (ParserConfigurationException e) 
{ 
    ... 
} 
catch (SAXException e) 
{ 
    ... 
} 
catch (IOException e) 
{ 
    ... 
} 

... 
2

Я предлагаю http://about.validator.nu/htmlparser/, который реализует алгоритм синтаксического анализа HTML5. Firefox находится в процессе замены своего собственного парсера HTML этим.

2

Я только что играл с JSoup, который является фантастическим парсером Java HTML, который немного похож на jQuery. Действительно прост в использовании.

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