Анализ веб-сайта HTML с помощью JAVA
Я хочу проанализировать простой веб-сайт и очистить информацию с этого веб-сайта.
Я использовал для анализа XML файлов с помощью DocumentBuilderFactory, я пытался сделать то же самое для html файла, но всегда попадал в бесконечный цикл.
URL url = new URL("http://www.deneme.com");
URLConnection uc = url.openConnection();
InputStreamReader input = new InputStreamReader(uc.getInputStream());
BufferedReader in = new BufferedReader(input);
String inputLine;
FileWriter outFile = new FileWriter("orhancan");
PrintWriter out = new PrintWriter(outFile);
while ((inputLine = in.readLine()) != null) {
out.println(inputLine);
}
in.close();
out.close();
File fXmlFile = new File("orhancan");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
NodeList prelist = doc.getElementsByTagName("body");
System.out.println(prelist.getLength());
В чем проблема? Или есть ли более простой способ очистить данные с веб-сайта для данного тега html?
Ответы
Ответ 1
Существует гораздо более простой способ сделать это. Я предлагаю использовать JSoup. С помощью JSoup вы можете делать такие вещи, как
Document doc = Jsoup.connect("http://en.wikipedia.org/").get();
Elements newsHeadlines = doc.select("#mp-itn b a");
Или, если вы хотите тело:
Elements body = doc.select("body");
Или если вы хотите все ссылки:
Elements links = doc.select("body a");
Вам больше не нужно получать соединения или обрабатывать потоки. Просто. Если вы когда-либо использовали jQuery, то это очень похоже на это.
Ответ 2
Определенно JSoup - это ответ.; -)
Ответ 3
HTML не всегда корректный, хорошо отформатированный XML. Попробуйте использовать специальный синтаксический анализатор HTML вместо XML-синтаксического анализатора. Доступно несколько различных вариантов:
http://java-source.net/open-source/html-parsers