在Android应用程序上如何只显示网页的一部分

时间:2012-05-16 21:55:14

标签: android android-webview

我不知道这是否可行但是......

我想尝试在我的应用中显示此网页的一小部分内容 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

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

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

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

现在您知道了,您可以使用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/

答案 1 :(得分:-1)

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

另一种选择是使用Javascript通过DOM树(tutorial on that here)从页面中获取数据。

为此,您需要启用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);");