Tôi đang cố thu thập dữ liệu trang web bằng htmlunit. Bất cứ khi nào tôi chạy nó mặc dù nó chỉ xuất ra lỗi sau:htmlunit Không thể đọc thuộc tính "đẩy" từ không xác định
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)
Bây giờ tôi không biết nhiều về JS, nhưng tôi đọc rằng push
là một loại hoạt động mảng. Điều này có vẻ tiêu chuẩn đối với tôi và tôi không biết tại sao nó sẽ không được hỗ trợ bởi htmlunit.
Dưới đây là đoạn code Tôi đang sử dụng cho đến nay:
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());
}
tôi thiếu gì? Có cách nào để giải quyết vấn đề này hay không? Cảm ơn bạn trước!
Nếu nó không được hỗ trợ, tôi đoán bạn nên yêu cầu các nhà phát triển cho một tính năng mới. –
Khi nào lỗi xảy ra? Sau cuộc gọi 'web.getPage (url)' hoặc 'response.getTitleText()'? – Jack
@Jack Lỗi xảy ra sau 'web.getPage (url)', vì tôi có thể nhận xét 'response.getTitleText()' và nó vẫn sẽ bị ném, ngay cả khi 'web.getOptions(). SetThrowExceptionOnScriptError (false); '(xem câu trả lời dưới đây) được chèn vào. – Maverick283