Java中获取网页内容用jsoup解析的简单使用

做一个小功能 获取网站文章列表内容,并解析组装成list列表,应用到listView,需要解析html,发现gsoup这个开源的东西不错,可以拿来用用。

文档地址:http://www.open-open.com/jsoup/selector-syntax.htm

android studio 引入jar包

compile 'org.jsoup:jsoup:1.10.3'

其它方式引入请移步文档更详细:https://jsoup.org/download

我们获取某网站内容比如地址: http://python.jobbole.com/all-posts/

我这里用了android-Async-Http

加载网页内容代码如下:

//android-Async-Http 怎么用自己去查了
client.get("http://www.itsayer.com", new TextHttpResponseHandler() {
            @Override
            public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
                //获取网页内容出错
            }

            @Override
            public void onSuccess(int statusCode, Header[] headers, String responseString) {
                if (statusCode != 200) {
                    listener.OnAsynRequestFail("-1",
                            BasicApplication.getContext().getString(R.string.data_error));
                }
                //获取成功处理 html 
                
                
                parseData( responseString );
            }

        });
//解析html
//我这里举例子是获取文章列表的每一项 然后装载到实体  应用到listview
void parseData(String responseString){
    ArrayList<Article> pl = new ArrayList<Article>();
     Document doc = Jsoup.parse( content );
     //查询id为archive的内容
     Element archive = doc.getElementById("archive");
     //String archiveHtml = archive.html(); //把查询到的片段转成html代码
     //查询符合div.floated-thumb 的每一项
     Elements post_items = archive.select( "div.floated-thumb" );
     Article article ;
    for (Element element : post_items ){
        article = new Article();
        //封面图片
        try {
            Element img = element.select("img[src]").first();
            article.img = img.attr("src");
        }catch (Exception e){
            article.img = "";
        }
        //详情链接和标题
        try {
            Element a = element.select("a[href]").first();
            article.url = a.attr("href");
            article.title = a.attr("title");
        }catch (Exception e){
            article.url = "";
            article.title = "";
        }
        pl.add( article );
    }
    //pl就是我解析的当前页的文章列表,可以add到 adapter 
    
}
//定义model
class Article{
    
    String img;
    String url;
    String title;
    
}

简单的应用到此为止了,是不是感觉方便简单,更多的dom open-open或者官网