2012-12-20 1 views
2

Я пытаюсь написать веб-искатель на Java, и до сих пор он в основном работает, хотя у меня проблемы с веб-сайтами, использующими JavaScript или PHP для динамического получения контента, например, если я пытаюсь обходить блог tumblr, а не получать весь исходный код со ссылками, и все, что я получаю только от CSS и информации заголовка, это потому, что вся информация о сообщениях собирается JavaScript.Как читать исходный код веб-сайта с помощью java

Код им с помощью, чтобы получить исходный код веб-страницы ...

public static String openURL(String url) 
{ 
    String source = null;                   
    String temp = "";                  
    BufferedInputStream bis;                   
    try 
    { 
     URL my_url = new URL(url);               

     HttpURLConnection urlConnection = (HttpURLConnection) my_url.openConnection(); 
     urlConnection.setRequestProperty("User-Agent", "Mozilla/5.0"); 
     InputStream is = urlConnection.getInputStream(); 

     bis = new BufferedInputStream(is);     

     byte[] buffer = new byte[1024]; 
     int bytesread = 0; 
     source = ""; 

     bytesread = bis.read(buffer); 

     while(bytesread != -1) 
     { 
      source += new String(buffer, 0, bytesread); 
      bytesread = bis.read(buffer); 
     } 
    } 
    catch (Exception ex){} 
    System.out.println(source); 
    return source;                    
} 

ли какой-либо один, как я могу идти об изменении этого так он будет получать динамический контент, любая помощь будет много оценил

Приветствие Daniel

EDIT: извините, ребята, в то время как ваши ответы будут полезны, этот проектом является более образовательным, так что я пытался найти способ сделать это с помощью третьего отказа стороны API,

+0

Вот почему доставка большинство контента через javascript плохо для SEO, доступность и т. д. –

ответ

2

Как правило, веб-сканеры будут видеть веб-сайты без обработки javascript. Веб-разработчики знают это, и поэтому «хорошие» веб-сайты могут быть успешно прочитаны без JS

Если вы действительно действительно хотите обработать JS (хотя ваша жизнь будет намного проще, если вы не используете), вы можете использовать этот инструмент: http://phantomjs.org/

я нету на самом деле использовали его, но он позволяет обрабатывать JS без использования браузера ..

+0

На самом деле это движок WebKit, тот же движок, который вы можете найти в Chrome. Это «почти» браузер ;-) – Grooveek

0

Если вы хотите сделать это в Java, посмотрите на htmlunit, который может иметь дело с JavaScript , или selenium, который может помочь вам управлять настоящим браузером

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