私の人生では、このサイトを取得するために HtmlUnit を装備することはできません。
バックグラウンドで実行されている膨大な量のスクリプトに関係していると確信しています。おそらく、これらのスクリプトが完全に読み込まれるのに十分な時間が与えられていないのでしょうか?
また、単純に bing.com/travel を取得しようとしましたが、どちらも成功しませんでした。新しい HtmlPage クライアントの getPage 関数が壊れています。
出力には、すべて同じ sourceName (" http://www.bing.com/travel/jsxc.vjs?a=common&v=5.5 .0-1278007084280 ")
次に、bing.com のいくつかのスクリプトで "(" が欠落しているためにいくつかの例外がスローされました。
次にjavascriptを呼び出し、突然終了します。
これは、他の人が見ることができないいくつかの問題である可能性があることを認識しています。したがって、提案がない場合は、独自の HtmlUnit 使用のテスト実装を通じてこれら 2 つのサイトをポンピングし、基本的な出力を取得できるかどうかを確認してください。 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);
}
}
ありがとう!