我試圖抓取使用htmlunit的網站。每當我運行它,雖然它只是輸出下列錯誤:htmlunit無法從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)
現在我不知道很多關於JS,但我讀了push
是某種數組的操作。這對我來說似乎是標準的,我不知道爲什麼它不會被htmlunit支持。
這裏是代碼我使用至今:
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());
}
我缺少什麼?有沒有辦法解決這個問題呢? 在此先感謝!
如果不支持,我想你應該向開發人員申請一個新功能。 –
何時發生錯誤?在'web.getPage(url)'或者'response.getTitleText()'調用之後? – Jack
@Jack'web.getPage(url)'後出現錯誤,因爲我可以註釋掉'response.getTitleText()'並且它仍然會被拋出,即使當'web.getOptions()。setThrowExceptionOnScriptError(false );'(見下面的答案)被插入。 – Maverick283