posts - 59, comments - 244, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

在android中使用jsoup解析页面链接

Posted on 2011-03-14 01:35 penngo 阅读(7176) 评论(4)  编辑  收藏 所属分类: android

本来想直接看sdk中的doc文档来学习android的,结果发现里面的英文资料,学起来速度有点慢,遂买了本android的教程书回来学习,刚好看到一个书里面一个使用java.net.URL访问网页的例子,之前在做采集的时候,使用了html解析器jsoup来获取页面所有链接,顺便试下把jsoup放进android中使用下,发现jsoup在android中能直接使用,测试例子代码(本文只作了简单测试):
tt.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding
="UTF-8"
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
测试连接
<href="http://www.blogjava.net/pengo/">penngo的博客</a>
<href="http://www.blogjava.net/">blogjava博客</a>
</body>
</html>


Activity01.java

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class Activity01 extends Activity
{
    @Override
    
public void onCreate(Bundle savedInstanceState)
    
{
        
super.onCreate(savedInstanceState);
        
        setContentView(R.layout.main);

        TextView tv 
= new TextView(this);
        
        String myString 
= null;
        StringBuffer sff 
= new StringBuffer();
        
try
        
{
            Document doc 
= Jsoup.connect("http://192.168.64.9:8099/AgentJava/tt.jsp").get();
            Elements links 
= doc.select("a[href]");
            
for(Element link : links){
                sff.append(link.attr(
"abs:href")).append("  ").append(link.text()).append("\n");
            }

            myString 
= sff.toString();
        }

        
catch (Exception e)
        
{

            myString 
= e.getMessage();
            e.printStackTrace();
        }

        
/* 将信息设置到TextView */
        tv.setText(myString);
        
        
/* 将TextView显示到屏幕上 */
        
this.setContentView(tv);
    }

}

运行效果:

本文是在android2.2中开发测试,jsoup在android上使用和在jdk上使用是一样,不用改变代码。

源码

评论

# re: 在android中使用jsoup解析页面链接[未登录]  回复  更多评论   

2011-06-22 22:47 by aaa
在android 上解析HTML太慢了。SAX接口的能比较快点。
tagsoup如何

# re: 在android中使用jsoup解析页面链接  回复  更多评论   

2014-04-04 09:25 by llll
这....直接这样用不会报NetworkOnMainThreadException吗?

# re: 在android中使用jsoup解析页面链接  回复  更多评论   

2014-08-03 23:59 by 哈利路鸭
我也是用jsoup 解析, 但是模拟器上运行调试都显示正常,就是真机上安装后运行,发现TextView 最后显示不出来东西!!!!

# re: 在android中使用jsoup解析页面链接  回复  更多评论   

2014-12-16 03:35 by backhoe
@llll
这可是2.2啊

只有注册用户登录后才能发表评论。


网站导航: