я не могу, за жизнь мне, вышка HtmlUnit, чтобы захватить этот сайт:Невозможный сайт для HtmlUnit?
Я уверен, что он должен делать с огромным количеством скриптов, работающих в фоновом режиме. Возможно, этим сценариям не дают достаточно времени для полной загрузки?
Я также попробовал просто захватить bing.com/travel и не добился успеха. Он разбивается на функцию getPage нового клиента HtmlPage.
Выход дает множество runtimeErrors («данные, необходимые для завершения этой операции пока не доступен»), все по той же SourceName («http://www.bing.com/travel/jsxc.vjs?a=common&v=5.5.0-1278007084280»)
Тогда пара исключений брошенной пропавшего «("через пару скриптов на bing.com.
затем вызывается JavaScript, а затем обрывается.
Я понимаю, что это может быть несколько проблем, которые другие не могли бы быть в состоянии видеть, и поэтому, если есть никаких предложений, кто-то не мог бы перекачать эти два сайта через тестовую реализацию собственного Ht mlUnit использовать и посмотреть, смогут ли они получить базовый результат XML или текстовых результатов? Я не пытаюсь сделать что-то интересное здесь, просто получайте базовый текст или результат вывода результатов XML.
Было бы удобно знать, работает ли какая-либо другая реализация, чтобы я мог завершить мой проект присяжных.
КОД:
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.WebClient;
public class test {
public static void main(String[] args) throws Exception {
WebClient client = new WebClient();
System.out.println("webclient loaded");
HtmlPage currentPage = client.getPage("http://www.bing.com/travel/flight/flightSearch?form=FORMTRVLGENERIC&q=flights+from+SLC+to+BKK+leave+07%2F30%2F2010+return+08%2F11%2F2010+adults%3A1+class%3ACOACH&stoc=0&vo1=Salt+Lake+City%2C+UT+%28SLC%29+-+Salt+Lake+City+International+Airport&o=SLC&ve1=Bangkok%2C+Thailand+%28BKK%29+-+Suvarnabhumi+International&e=BKK&d1=07%2F30%2F2010&r1=08%2F11%2F2010&p=1&b=COACH&baf=true");
client.waitForBackgroundJavaScript(10000);
System.out.println("htmlpage init'd");
//System.out.println(currentPage.getTitleText());
String textSource = currentPage.asXml();
System.out.println(textSource);
}
}
Спасибо!
а сукин сын ... спасибо! так стоит идти до исправить ошибки и предупреждения? до тех пор, пока я получаю страницу, возможно, это не стоит усилий ... –
Из того, что я помню, это было всего лишь информация о регистрации. Это типично для моих тестов HtmlUnit, консольных spews как сумасшедшие Если страница выходит, не беспокойтесь об этом. –
Я просто хочу подтвердить, что добавление этой строки выше действительно работает. У меня тоже была такая же проблема - получение ошибки, в которой говорится, что я загружаю устаревший контент JS во время загрузки страницы. Затем, в конечном счете, во время автоматической подачи формы ошибка заключается в том, что содержимое JS еще не доступно. Те же журналы все еще появляются, но, по крайней мере, исключение RuntimeException, которое бросает и останавливает выполнение, исчезло. Тем не менее, я думаю, что только потому, что JS, который загружался, не является обязательным для меня, чтобы заполнить ввод и представление формы в первую очередь. –