2016-08-05 5 views
0

Я пытаюсь получить HTML-страницу веб-сайта (ex http://htmlunit.sourceforge.net), но я получаю сообщение об ошибке IlleagalArgumentException: не удается найти объявленный класс поля org.apache.http.impl.client.HttpClientBuilder.dnsResolver , Мой код выглядит следующим образом:Получить HTML-страницу с помощью htmlunit

public class Main1 { 
    public static void main(String[] args) { 
      try { 
       homePage(); 
      } catch (Exception e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 

    public static void homePage() throws Exception { 
      try (final WebClient webClient = new WebClient()) { 
       final HtmlPage page = webClient.getPage("http://www.google.com"); 
       String text = page.asText(); 
       System.out.println(text); 
      } 
     } 
    } 

С кодом что-то не так? Спасибо

+0

Зачем вам нужна страница? Вы хотите разобрать его? – Tugrul

+0

@Tugrul Да, мне нужно разобрать его на самом деле, я читаю, что htmlunit может анализировать элементы html и javascript на странице. –

+0

Проверьте мое предложение. – Tugrul

ответ

1

Вы можете использовать jsoup parser.

Маленький пример кода

Document doc = Jsoup.connect("http://en.wikipedia.org/").get(); 
Elements newsHeadlines = doc.select("#mp-itn b a"); 

Расширенный Использование

File input = new File("/tmp/input.html"); 
Document doc = Jsoup.parse(input, "UTF-8", "http://example.com/"); 

Element content = doc.getElementById("content"); 
Elements links = content.getElementsByTag("a"); 
for (Element link : links) { 
    String linkHref = link.attr("href"); 
    String linkText = link.text(); 
} 

Полезные адреса

+0

Jsoup не может анализировать элементы Javascript прямо? Мне нужно на самом деле что-то, что может заставить HTML содержать Javascript, поэтому я пытаюсь htmlunit –

+0

Если вам нужны только javascripts, просто используйте любое приложение веб-scrapper для расширения * .js и сохраните файлы в локальном хранилище. Затем проанализируйте их, что хотите. – Tugrul

+0

Мне нужен синтаксический анализ реальной и текущей страницы, и, к сожалению, эта страница, которую я хочу, представляет собой одностраничное приложение и позже выберет необходимые элементы javascript. Если я использую Jsoup, тогда он получит только фоновую страницу, а не текущий элемент, который я хочу. –