2015-02-22 2 views
0

Я пытаюсь получить html-код с веб-сайта из моего проекта java. Я смог это сделать, однако через некоторые исследования я узнал, что он никогда не загружает клиентскую часть сайта (не на 100% уверен, какая разница), я не уверен, что веб-сайт никогда не запускает свой javascript-код, который мог бы добавить остальной код html, который я ищу, но это то, что, как я думаю, происходит. Любая помощь будет принята с благодарностью!Как получить HTML-код с веб-сайта в java-программе?

Edit - Вот это код, который в конечном итоге работает для меня:

public class GetHtml { 

    public static WebDriver driver = new FirefoxDriver(); 

    public static String get() throws Exception { 

     //Connect to the website 
     driver.get("webiste"); 


     // Sleep for 5 seconds so page can load 
     long end = System.currentTimeMillis() + 5000; 
     while (System.currentTimeMillis() < end) { 
     } 

     //Get userlist 
     List<WebElement> users=driver.findElements(By.className("userlist")); 

     String s = ""; 
     for (WebElement w : users) { 
      s += (w.getText()); 
     } 

     return s; 

    } 
} 

Это открывает «сайт» в веб-браузере Firefox, ждет его загрузки, а затем найти этот HTML-элемент с классом name "userlist" и возвращает строку с именами всех пользователей, находящихся в списке пользователей.

+1

Пожалуйста, покажите код, который у вас уже есть. –

ответ

1

Если содержимое динамически генерируется с Javascript или другой запрос, один подход заключается в использовании основы автоматизации selenium браузера: https://code.google.com/p/selenium/wiki/GettingStarted

Простой пример, чтобы получить все элементы страницы:

WebDriver driver = new FirefoxDriver(); 
driver.get("http://www.example.com"); 

List<WebElement> el = driver.findElements(By.cssSelector("*")); 
+0

Спасибо, что работает на то, что мне нужно, хотя при открытии браузера это немного раздражает, но он выполняет свою работу, спасибо! – drewpel

0

Библиотека jsoup получает URL-адрес в своих комментариях по очистке и анализу HTML.

Document doc = Jsoup.connect("http://en.wikipedia.org/").get(); 
Смежные вопросы