2017-06-02 2 views
0

Ich versuche, den Quellcode der this Seite mit Htmlunit zu bekommen, aber es scheint, dass einige Javascript nicht ausgeführt wird (oder vielleicht etwas anderes passiert). Sie gibt die Seite nur wie in der Phase "Laden ..." zurück, die angezeigt wird, bevor die Tabellen angezeigt werden. Mache ich etwas falsch?Kann die richtige Quelle von HtmlUnit nicht bekommen

Mein Code:

[...] WebClient webClient = new WebClient(BrowserVersion.CHROME); 
Page page = webClient.getPage(url); 
WebResponse response = page.getWebResponse(); 
String content = response.getContentAsString(); 
System.out.println("HTML: " + content); [...] 
+0

Ich vermute, dass die Seite Javascript hat den Inhalt zu ändern und es ist noch nicht fertig, wenn du den Inhalt packst. Versuchen Sie, 'webClient.waitForBackgroundJavaScriptStartingBefore (10000);' direkt nach dem Abrufen der Seite hinzuzufügen. – Baldy

+0

Habe es schon ausprobiert, aber nur um sicher zu sein, habe ich es nochmal versucht ... und nein, gleiche Seite ohne die Tabellen ... –

+0

Benötigt die Seite mehr als 10 Sekunden zum Laden? Wenn dies der Fall ist, ändern Sie das Timeout in einen geeigneteren Wert. Ansonsten habe ich keine Ideen, sorry. – Baldy

Antwort

0

Seite. getWebResponse() gibt die Antwort vom Server ohne JavaScript-Änderungen zurück.

sollten Sie verwenden:

page.asXml() 

oder

page.asText() 

für diese Seite scheint Htmlunit einen Fehler durch:

Invalid JavaScript value of type com.gargoylesoftware.htmlunit.ScriptException

+0

Also gibt es keine Möglichkeit, die Seite mit den Tabellen zu bekommen? –

+0

Verstanden! Ändern Sie einfach die Browser-Version in "FIREFOX_52" und holen Sie die Seite als XML, wie Sie vorgeschlagen haben. Vielen Dank! –

Verwandte Themen