Uzyskanie HtmlUnit do uruchomienia pod Androidem
Zastanawiałem się, czy ktoś był w stanie uruchomić HtmlUnit pod Androidem?
Mam stronę, którą ocieram za pomocą Jsoup (to działa dobrze). Jednak jedna z sekcji zawiera więcej niż 2 strony. Witryna korzysta z ASP.NET i używa odsyłacza Javascript do linku prowadzącego do następnej strony. W rezultacie muszę jakoś wykonać JavaScript, aby uzyskać zawartość następnej strony. To jest miejsce, gdzie przychodzą moje próby w HtmlUnit.
Poniższy kod działa idealnie na Javie:
WebClient webClient = new WebClient();
webClient.setJavaScriptEnabled(true);
HtmlPage page = null;
webClient.setThrowExceptionOnFailingStatusCode(false);
webClient.setThrowExceptionOnScriptError(false);
try {
page = webClient.getPage(URLOne.toString());
} catch (FailingHttpStatusCodeException e1) {
e1.printStackTrace();
} catch (MalformedURLException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
HtmlAnchor anchor = (HtmlAnchor) page.getAnchorByHref("javascript:__doPostBack('lb_next','')");
try {
page = (HtmlPage) anchor.click();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
webClient.closeAllWindows();
Document doc1 = Jsoup.parse(page.asXml());
Po skonfigurowaniu niezbędnych bibliotek w Androidzie musiałem usunąć: xalan, xerces i xml-apis (HtmlUnit na Androida). Jeśli je zachowam, otrzymuję konwersję na błąd Dalvika.
Bez nich aplikacje działają na Androidzie, ale jeśli chodzi o sekcję wymagającą HtmlUnit, otrzymuję kilka następujących błędów w logcat:
Could not find method org.apache.http.conn.scheme.Scheme.<init>, referenced from method com.gargoylesoftware.htmlunit.HttpWebConnection.createHttpClient
Could not find method org.w3c.dom.css.CSSStyleDeclaration.getLength, referenced from method com.gargoylesoftware.htmlunit.javascript.host.css.ComputedCSSStyleDeclaration.applyStyleFromSelector
VFY: unable to find class referenced in signature (Lorg/w3c/dom/css/CSSStyleSheet;
VFY: unable to find class referenced in signature (Lorg/w3c/dom/css/CSSStyleDeclaration;
Następnie siła aplikacji zamyka się. Ten problem jest podobny do tego:Jak uzyskać HtmlUnit do pracy pod Androidem? iHtmlUnit Android problem z WebClient
Jedynym powodem, dla którego używam HtmlUnit, jest możliwość uruchomienia Javascript na tej stronie. Jestem otwarty na każdą alternatywę, która może pozwolić mi zrobić coś podobnego.
Dzięki