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

来源:互联网 发布:篮球赛程编排软件 编辑:程序博客网 时间:2024/06/07 20:12
经过一天的折腾,也上网查了好多的资料终于知道如何获取网页中的指定内容了。

首先,我们要获取网页中的代码,然后在通过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";@Overridepublic 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());}@Overridepublic 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

欢迎大家一起学习,提出宝贵建议。

原创粉丝点击