Ich versuche, eine Website mit htmlunit zu crawlen. Jedes Mal, wenn ich es laufen, obwohl nur er gibt den folgenden Fehler:htmlunit Kann Eigenschaft nicht lesen "push" von undefined
Caused by: net.sourceforge.htmlunit.corejs.javascript.EcmaError: TypeError: Cannot read property "push" from undefined (https://www.kinoheld.de/dist/prod/0.4.7/widget.js#1)
Nun weiß ich nicht viel über JS, aber ich gelesen, dass push
eine Art Array Betrieb ist. Dies scheint mir Standard zu sein und ich weiß nicht, warum es von htmlunit nicht unterstützt wird.
Hier den Code verwende ich so weit:
public static void main(String[] args) throws IOException {
WebClient web = new WebClient(BrowserVersion.FIREFOX_45);
web.getOptions().setUseInsecureSSL(true);
String url = "https://www.kinoheld.de/kino-muenchen/royal-filmpalast/vorstellung/280823/?mode=widget&showID=280828#panel-seats";
web.getOptions().setThrowExceptionOnFailingStatusCode(false);
web.waitForBackgroundJavaScript(9000);
HtmlPage response = web.getPage(url);
System.out.println(response.getTitleText());
}
Was bin ich? Gibt es einen Weg um dies oder eine Möglichkeit, dies zu beheben? Vielen Dank im Voraus!
Wenn es nicht unterstützt wird, sollten Sie die Entwickler nach einem neuen Feature fragen. –
Wann tritt der Fehler auf? Nach dem 'web.getPage (URL)' oder dem 'response.getTitleText()' Aufruf? – Jack
@Jack Der Fehler tritt nach der 'web.getPage (url)' auf, da ich die 'response.getTitleText()' auskommentieren kann und sie wird auch dann noch geworfen, wenn 'web.getOptions(). SetThrowExceptionOnScriptError (false); '(siehe Antwort unten) wird eingefügt. – Maverick283