我不知道这是否可行但是......
我想尝试在我的应用中显示此网页的一小部分内容 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
我需要的是获取一些信息以显示在我的应用上,它通常位于网页的一部分上,只是一个。
感谢您的帮助
答案 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);");