Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 让HtmlUnit在Android下运行_Java_Android_Htmlunit - Fatal编程技术网

Java 让HtmlUnit在Android下运行

Java 让HtmlUnit在Android下运行,java,android,htmlunit,Java,Android,Htmlunit,我想知道是否有人能让HtmlUnit在Android下运行 我有一个网站,我正在使用Jsoup(这很好)。但是,其中一个部分包含2页以上的内容。该网站使用ASP.NET,他们使用Javascript回发链接,以链接到下一页。因此,我需要以某种方式执行Javascript以获取下一页的内容。这就是我尝试HtmlUnit的原因 以下代码在Java上运行良好: WebClient webClient = new WebClient(); webClient.setJavaScriptEnabled(t

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

我有一个网站,我正在使用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和xmlapi()。如果我保留它们,我会得到Dalvik错误的转换

如果没有它们,应用程序将在Android中运行,但是当涉及到需要HtmlUnit的部分时,我在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;
找不到从方法com.gargoylesoftware.htmlunit.HttpWebConnection.createHttpClient引用的方法org.apache.http.conn.scheme.scheme
找不到方法org.w3c.dom.css.CSSStyleDeclaration.getLength,该方法引用自方法com.gargoylesoftware.htmlunit.javascript.host.css.ComputedCSSStyleDeclaration.applyStyleFromSelector
VFY:找不到签名中引用的类(Lorg/w3c/dom/css/CSSStyleSheet;
VFY:找不到签名中引用的类(Lorg/w3c/dom/css/CSSStyleDeclaration;
然后应用力关闭。此问题与此类似:和

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

谢谢不要使用htmlUnit

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

只需看看在运行Eclipse之前必须加载多少JAR! 总共有21个JAR,超过10mb!请记住,您也可以为Android Market打包高达50mb的数据。这只会减慢Eclipse的速度,并且在调试时可能需要增加内存


改用Jsoup!

我还没有成功-你在Android中使用htmlunit成功了吗?没有,死胡同。放弃尝试。如果你的Android项目中仍然需要Javascript,请查看Rhino。我发现它工作得很好,比htmlunit小得多。Bobik是另一个建议的web抓取解决方案。请查看我的图片d这里:Jsoup不能执行javascript..有其他选择吗?也许看看Selenium,它有一个JavascriptExecutor