Jsoup анализирует HTML-страницу без изменения содержимого

#java #html #parsing #jsoup #html-parsing

#java #HTML #синтаксический анализ #jsoup #html-синтаксический анализ

Вопрос:

Я пытаюсь проанализировать HTML-страницу, полученную через прокси, поэтому у меня есть:

 HttpUriRequest request = new HttpGet(url);
HttpResponse httpResponse = HttpClient.execute(request);

InputStream stream = httpResponse.getEntity().getContent();
String myHtml = IOUtils.toString(stream, "UTF-8");
Document doc = Jsoup.parse(myHtml);
  

Проблема в том, что html, проанализированный и настроенный как документ, полностью отличается от полученного html. у меня есть много тегов div, которые перемещены.

пример :

 <html>
  <head>
  </head>
  <body>
    <div id="parent">
      <div id="header"> </div>
      <div id="content"> </div>
      <div id="footer"> </div>
    </div>
  </body>
</html>
      
        

Стать :

 <html>
  <head>
  </head>
  <body>
    <div id="parent">
      <div id="header"> </div>
      <div id="content"> </div>
    </div>


    <div id="footer"> </div>
  </body>
</html>
      
        

Нижний колонтитул перемещается из родительского div.

Я знаю, что Jsoup основан на рекомендациях W3C, и я думаю, что исходный html-код недействителен, но мне нужно сохранить DOM неизменным.

Я пытался использовать параметр Parser.XMLParser(), но результаты все те же.

У кого-нибудь есть идея избежать всех изменений, внесенных Jsoup? или другой анализатор html для выполнения этой работы?

Комментарии:

1. Это очень трудно определить, не видя вашего ввода и вывода.

2. Я отредактирую сообщение, но представьте, что div перемещен в другое место в DOM или перемещен из родительского div

3. Что такое orginal ? Это строка, которую вы читаете из flie, какого-то веб-соединения?

4. @TDG это HttpResponse, я отредактирую это, спасибо

5. Если исходники недопустимы, у инструментов / библиотек есть два варианта: исправить исходный код или выдать ошибку / исключение. Поэтому очистите исходный код самостоятельно (обработайте строку) перед синтаксическим анализом с помощью jsoup или реструктурируйте в jsoup в соответствии с предполагаемой структурой.