让HtmlUnit在Android下运行

我想知道是否有人能够在Android下运行HtmlUnit?

我有一个网站,我正在使用Jsoup刮(这很好用)。 但是,其中一个部分包含2页以上。 该站点使用ASP.NET,他们使用Javascript回发链接到下一页。 因此,我需要以某种方式执行该Javascript以获取下一页的内容。 这是我对HtmlUnit的尝试。

以下代码在Java上完美运行:

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()); 

当我在Android中设置必要的库时,我必须删除:xalan,xerces和xml-apis( Android上的HtmlUnit )。 如果我保留它们,我会转换为Dalvik错误。

没有它们,应用程序在Android中运行,但是当涉及到需要HtmlUnit的部分时,我在logcat中遇到以下几个错误:

 Could not find method org.apache.http.conn.scheme.Scheme., 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; 

然后申请人关闭。 此问题与此类似: 如何让HtmlUnit在Android下运行? 和WebClient的HtmlUnit Android问题

我使用HtmlUnit的唯一原因是能够在该页面上运行Javascript。 我愿意接受任何可以让我做类似事情的替代方案。

谢谢

不要使用htmlUnit。

你会认为你只需要几个核心jar子。 不,你可能需要所有这些,否则你可能会遇到一些类找不到的错误。

在运行之前,只需看看有多少jar装入Eclipse即可! 共有21个jar子,超过10mb! 请记住,您还可以为Android Market打包最多50mb。 它只会减慢Eclipse速度,您可能需要在调试时增加内存。

改用Jsoup!