0

我不知道这是否可能,但是..

我想尝试在我的应用程序上显示此网页的一小部分 http://magicseaweed.com/Praia-da-Rocha-Surf-Report/127/

即这个

img1 http://dl.dropbox.com/u/2253656/Screenshot%20at%202012-05-16%2022%3A38%3A07.png

或来自http://www.infopraias.com/reportpraia.asp?ID=3的另一个示例

img2 http://dl.dropbox.com/u/2253656/teste2.jpg

我需要的是获取一些信息以显示在我的应用程序上,它通常在网页的一部分上,只是一个 .

谢谢您的帮助

4

2 回答 2

1

首先,您应该知道安卓市场服务条款禁止未经授权使用网络服务(包括“网页”)。

现在您知道了,您可以使用jsoup抓取网页中的数据。

将 JAR 放入您的项目中,创建一个名为“libs”的文件夹。右键单击它并添加到构建路径。

然后试试这个,他们主页上的例子:

Document doc = Jsoup.connect("http://en.wikipedia.org/").get();
Elements newsHeadlines = doc.select("#mp-itn b a");

(注意:不要刮维基百科......他们禁止快速)

您只需要检查要从中获取数据的页面的 DOM 并确定什么是好的选择器。那里是一个 CSS 选择器。另一种方法是使用 xpath:https ://norrisshelton.wordpress.com/2011/01/27/jsoup-java-html-parser/

于 2012-05-16T22:01:48.143 回答
-1

我同意,不要去不属于你的地方报废。

另一种选择是使用 Javascript 通过 DOM 树从页面中获取数据(关于此处的教程)。

为此,您需要启用 javascript 并添加 Javascript WebChromeClient:

myWebView.getSettings().setJavaScriptEnabled(true);
// register class containing methods to be exposed to JavaScript
myWebView.setWebChromeClient(new MyWebChromeClient());

/**
 * Provides a hook for calling "alert" from javascript. Useful for
 * debugging your javascript.
 */
final class MyWebChromeClient extends WebChromeClient {
    @Override
    public boolean onJsAlert(WebView view, String url, String message, JsResult result)     {
        Log.d("DEBUG", message);
    }
}

然后,您可以通过以下方式提醒您已从页面上删除的值:

myWebView.loadUrl("javascript:alert(document.getElementsByClassName('mainbody')[0].getElementsByTagName('b')[1].innerText);");
于 2012-05-16T22:12:32.213 回答