Ich kann für das Leben von mir nicht, Htmlunit rig dieser Seite zu greifen nach oben:Unmögliche Site für HtmlUnit?
im Hintergrund laufenIch bin sicher, dass es mit den riesigen Mengen von Skripten zu tun hat. Vielleicht erhalten diese Skripte nicht genug Zeit, um vollständig geladen zu werden?
Ich habe auch versucht, einfach bing.com/travel zu greifen, und auch keinen Erfolg. Es bricht die getPage-Funktion des neuen HtmlPage-Clients.
Der Ausgang gibt eine Fülle von runtimeErrors („Daten notwendig, diesen Vorgang abzuschließen sind noch nicht verfügbar“), die alle für den gleichen Quellnamen („http://www.bing.com/travel/jsxc.vjs?a=common&v=5.5.0-1278007084280“)
dann ein paar Ausnahmen für einen fehlenden „geworfen ("in ein paar Skripte auf bing.com.
dann Javascript es nennt, dann endet abrupt.
ich weiß, das eine Handvoll Probleme sein könnte, die andere vielleicht nicht sehen können, und so, wenn es keine Vorschläge, würde jemand etwas dagegen tun, diese beiden Seiten durch eine Test-Implementierung ihrer eigenen Ht mlUnit verwenden und sehen, ob sie grundlegende Ausgabe der XML-oder Text-Ergebnisse erhalten können? Ich versuche hier nichts Besonderes zu machen, ich möchte nur einen einfachen Text oder eine XML-Ausgabe der Ergebnisse erhalten.
Es wäre praktisch zu wissen, ob die Implementierung von jemand anderem funktioniert, damit ich die mysteriöse Verwicklung von Geschworenen bis zur Fertigstellung aufrechterhalten kann.
Code:
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);
}
}
Dank!
gut Sohn einer Pistole ... dank! so ist es lohnenswert durch behebt die Fehler und Warnungen? Solange ich eine Seite heraus bekomme, ist es vielleicht nicht die Mühe wert ... –
Soweit ich mich erinnere, war es nur Logging-Info. Das ist typisch für meine HtmlUnit Tests, die Konsole spuckt wie verrückt Wenn die Seite ausgegeben wird, machen Sie sich keine Sorgen darüber –
Ich möchte nur bestätigen, dass das Hinzufügen der obigen Zeile wirklich funktioniert. Ich habe auch das gleiche Problem - einen Fehler bekommen, der besagt, dass ich einen veralteten JS-Inhalt während des Ladens der Seite geladen habe. Bei der automatischen Übermittlung von Formularen tritt schließlich der Fehler auf, dass der JS-Inhalt noch nicht verfügbar ist. Dieselben Protokolle werden weiterhin angezeigt, aber mindestens die RuntimeException, die ausgelöst wird und die gesamte Ausführung stoppt, ist verschwunden. Ich denke jedoch, dass dies nur deshalb der Fall ist, weil das JS, das geladen wurde, für mich nicht notwendig ist, um Formeingabe und -einreichung überhaupt durchzuführen. –