Javascriptがサポートされているため、HtmlUnitを使用してWebページをスクレイプしようとしています。(私はむしろJsoupを使用したいのですが、JSサポートはありません)。
この問題は、基盤となるNekoHtmlパーサーの機能に関連しています:「http://cyberneko.org/html/features/scanner/allow-selfclosing-iframe」
参照: http: //nekohtml.sourceforge.net/settings.html
これはNekoで有効にできるようですが、私はHtmlUnitを使用しています。HTMLユニットがこの機能を有効にするために使用している基盤となるNekoパーサーを構成する方法はありますか?
このコードを実行しようとすると、次のようになります。
final WebClient webClient = new WebClient();
HtmlPage page = webClient.getPage(url.toString());
このエラーが発生します:
Caused by: 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
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)
... 41 more