您的位置:首页 > 移动开发 > Android开发

Android中如何获取网页中的指定内容

2013-03-21 18:12 239 查看
经过一天的折腾,也上网查了好多的资料终于知道如何获取网页中的指定内容了。
首先,我们要获取网页中的代码,然后在通过jsoup进行解析和遍历。我们首先要下载一个jsoup包,我下载的是jsoup-1.7.2,最后我会附上jsoup-1.7.2下载地址和我的源码下载地址。获取网页代码大家可以参考:http://www.360doc.com/content/11/1108/10/6984362_162698681.shtml,我用的是第二种方法。

我这里就演示下如何获取指定网页中的title。

import 略;

/**
* @author Jasonzhou
* @since 2013-03-21
* @功能 读取网页内容
* @说明 获取网页的全部代码后使用jsuop进行处理, 以便得到想要的内容
**/

public class MainActivity extends Activity {
// 指定网页地址
public String url = "http://blog.csdn.net/jasonzhou613/article/details/7905388";

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
manageException();// 处理抛出异常
TextView tv = (TextView) findViewById(R.id.text);
String myString = null;
myString = posturl(url);
// 设置屏幕显示
Log.i("---网页代码---", "" + myString);
String html = myString;
Document doc = Jsoup.parse(html);
tv.setText(doc.title());

}

/**
* 获取参数指定的网页代码,将其返回给调用者,由调用者对其解析 返回String
*/
public String posturl(String url) {
InputStream is = null;
String result = "";

try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
} catch (Exception e) {
return "Fail to establish http connection!" + e.toString();
}

try {
BufferedReader reader = new BufferedReader(new InputStreamReader(
is, "utf-8"));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();

result = sb.toString();
} catch (Exception e) {
return "Fail to convert net stream!";
}

return result;
}

public void manageException() {
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectDiskReads().detectDiskWrites().detectNetwork() // or
// .detectAll()
// for
// all
// detectable
// problems
.penaltyLog().build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectLeakedSqlLiteObjects().penaltyLog().penaltyDeath()
.build());
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}

}


我们来看下效果图:



以上就是我获取到我一篇博客中的title。大家还以用doc.body().text()来获取网页中的body部分,具体大家可以去查看jsoup的用法。

源码下载地址,里面包含了jsoup-1.7.2.jar:http://download.csdn.net/detail/jasonzhou613/5167100

欢迎大家一起学习,提出宝贵建议。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: