2013-10-05 5 views
0

У меня есть небольшой проект, над которым я работаю, где я очищаю информацию с веб-страниц. В качестве шага начала я начал смотреть на исходном коде страницы изИзвлечение полного источника страницы из веб-страницы

http://www.walmart.com/search/search-ng.do?search_query=camera&ic=16_0&Find=Find&search_constraint=0

После анализа того, что мне нужно сделать, я попытался получить ту же самую информацию страницы, используя два метода, которые были как неудачной

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

Document doc; 
    try { 
     doc = Jsoup.connect("http://www.walmart.com/search/search-ng.do?search_query=camera&ic=16_0&Find=Find&search_constraint=0").get(); 

     System.out.println(doc); 

    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

который принес некоторую информацию страницы, но не фактический источник страницы, которая включает в себя все результатах поиска

Тогда я попробовал и Apache Commons решение HTTP, который выглядит как

String url = "http://www.walmart.com/search/search-ng.do?search_query=camera&ic=16_0&Find=Find&search_constraint=0"; 
    DefaultHttpClient httpclient = new DefaultHttpClient(); 
    HttpPost request = new HttpPost(url); 

     HttpResponse response; 
     try { 
      response = httpclient.execute(request); 
      StatusLine status = response.getStatusLine(); 
      String responseString = EntityUtils.toString(response.getEntity()); 

      System.out.println(status); 
      System.out.println(responseString); 

     } catch (ClientProtocolException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

, но я продолжаю получать страницу постоянно перемещается статус.

До сих пор кажется, что Jsoup - мой лучший вариант для продвижения вперед. Я считаю, что проблема с получением всех результатов поиска не связана с сценариями, которые находятся на странице, не выполняемой при вызове функции получения Jsoup.

Как получить всю информацию о странице, чтобы я мог начать получать информацию из результатов поиска.

+0

Вы удалили свой вопрос Jsoup, не отвечая на мой вопрос. Вы нашли причину усечения? Это был зритель, которого вы использовали, а не Jsoup? –

ответ

2

Jsoup не поддерживает выполнение javascript, что означает, что вы не сможете анализировать динамически генерируемый HTML. Проще говоря, Jsoup не моделирует среду браузера, а является чистым парсером.

Я бы предположил, что вместо этого вы используете HtmlUnit, который является «GUI-less браузером для Java-программ». Он поддерживает выполнение javascript и может быть использован для генерации HTML-источника, который позже может понадобиться для упрощения анализа с помощью Jsoup.

HtmlUnit можно найти here.

+0

Это то, что я понял, спасибо – JME

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