Как исправить кибернеко самозакрывающийся iframe не распознается в htmlunit? - PullRequest
1 голос
/ 11 мая 2019

В настоящее время я пытаюсь создать программу для очистки веб-страниц с использованием HTMLunit.Тем не менее, когда я запустил его, я получаю эту ошибку

Exception in thread "main" com.gargoylesoftware.htmlunit.ObjectInstantiationException: unable to create HTML parser
    at com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.<init>(HTMLParser.java:418)
    at com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.<init>(HTMLParser.java:342)
    at com.gargoylesoftware.htmlunit.html.HTMLParser.parse(HTMLParser.java:203)
    at com.gargoylesoftware.htmlunit.html.HTMLParser.parseHtml(HTMLParser.java:179)
    at com.gargoylesoftware.htmlunit.DefaultPageCreator.createHtmlPage(DefaultPageCreator.java:221)
    at com.gargoylesoftware.htmlunit.DefaultPageCreator.createPage(DefaultPageCreator.java:106)
    at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseInto(WebClient.java:433)
    at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:311)
    at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:373)
    at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:358)
    at ReviewScrapping.getCOntentData(ReviewScrapping.java:28)
    at ReviewScrapping.main(ReviewScrapping.java:34)
Caused by: org.xml.sax.SAXNotRecognizedException: Feature 'http://cyberneko.org/html/features/scanner/allow-selfclosing-iframe' is not recognized.
    at org.apache.xerces.parsers.AbstractSAXParser.setFeature(Unknown Source)
    at com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.<init>(HTMLParser.java:411)
    ... 11 more

Я уже пытался следовать этому решению При использовании HtmlUnit, как я могу настроить основной анализатор NekoHtml?

Тем не менее, я все еще получаю ту же проблему.

Это мои текущие программы, где я подключаю веб-сайт к моей программе

 public static HtmlPage getCOntentData(String url) throws IOException{
        BrowserVersionFeatures[] bvf = new BrowserVersionFeatures[1];
        bvf[0] = BrowserVersionFeatures.HTMLIFRAME_IGNORE_SELFCLOSING;
        BrowserVersion bv = new BrowserVersion(
                BrowserVersion.NETSCAPE, "5.0 (Windows; en-US)",
                "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8",
                (float) 3.6, bvf);

        WebClient webClient = new WebClient(bv);
        webClient.setJavaScriptEnabled(true);

        return webClient.getPage(url);
    }

в моей основной

 HtmlPage site = getCOntentData("https://www.tokopedia.com/p/handphone-tablet");
            List<?> date = site.getByXPath("//div[@class='V4CqgZIv']");
            System.out.println(date.get(0));

Это то, что у меня есть сейчас, и сейчас я застрял в том, как это исправить.

Сейчас я хочу, чтобы эта ошибка исчезла

1 Ответ

0 голосов
/ 11 мая 2019
Caused by: org.xml.sax.SAXNotRecognizedException: Feature 'http://cyberneko.org/html/features/scanner/allow-selfclosing-iframe' is not recognized.

Похоже, у вас не та версия neko parser.Пожалуйста, используйте последнюю версию (2.35.0 на данный момент).Если вы используете maven, убедитесь, что никакая другая часть приложения не отменяет зависимость neko-htmlunit (также в версии 2.35.0).Если вы не используете maven, загрузите файл htmlunit-2.35.0-bin.zip и убедитесь, что у вас есть только правильная версия всех зависимостей в вашем пути к классам.

...