Получение данных с веб-сайта после того, как Javascript первоначально выполнялся с помощью HtmlUnit

Я пишу свою дипломную работу по играм судоку. Для этого мне нужно много Судоку и подумать о написании программы, чтобы загрузить ее. Для начала я хочу сосредоточиться на одной странице: http://view.websudoku.com/?

идентификаторы элементов td, которые мне нужны, это от 'c00' до 'c88'

Я поиграл с HtmlUnit и нашел способ получить эти элементы:

java.util.logging.Logger.getLogger("com.gargoylesoftware")
                .setLevel(java.util.logging.Level.OFF);

WebClient webClient = new WebClient();
String url = "http://view.websudoku.com/?";
System.out.println("Loading page now: " + url);
HtmlPage page = webClient.getPage(url);
webClient.waitForBackgroundJavaScript(30 * 1000);

for(int i = 0; i < 9; i++) {
    for(int j = 0; j < 9; j++) {
        System.out.println(page.getElementById("c" + i + j));
    }
}

Так что это дает мне правильные элементы. Проблема в том, что содержимое элементов (особенно заполненные номера) генерируется JavaScript. Код выше получает только пустые поля, а не заполненные, так как они заполняются позже.

Как я могу справиться с этой проблемой? Я не могу найти много современной помощи HtmlUnit. Это устарело? Есть ли лучшие библиотеки?

0 ответов

Другие вопросы по тегам