【Android 我的博客APP】1.抓取博客首页文章列表内容——网页数据抓取

简介:

打算做个自己在博客园的博客APP,首先要能访问首页获取数据获取首页的文章列表,第一步抓取博客首页文章列表内容的功能已实现,在小米2S上的效果图如下:

 

思路是:通过编写的工具类访问网页,获取页面源代码,通过正则表达式得到匹配的数据进行处理显示到ListView上

 

简单说明下要点:
1. 使用Apache HttpClient库实现GET请求。
2. 异步请求处理。
3. 正则表达式抓取自己需要的数据。

 

使用Apache HttpClient库实现GET请求。

使用Apache只需简单三步

HttpClient httpClient = new DefaultHttpClient();  //创建一个HttpClient  
  
HttpGet httpGet = new HttpGet(“http://www.cnblogs.com/yc-755909659/”); //创建一个GET请求  
  
HttpResponse response = httpClient.execute(httpGet); //发送GET请求,并响应内容

 

异步请求处理

异步请求的实现也很简单,开辟新线程执行请求处理,请求完成通过Handler在主线程处理所获得的数据。具体看源代码中MainActivity.java 类代码。

 

正则表达式抓取自己需要的数据

访问我的博客主页查看网页源代码,很容易找到要抓取文章列表内容的格式都如下:

复制代码
<div class="postTitle">
                <a id="homepage1_HomePageDays_DaysList_ctl00_DayList_TitleUrl_0" class="postTitle2" href="http://www.cnblogs.com/yc-755909659/p/4187155.html">【读书笔记《Android游戏编程之从零开始》】19.游戏开发基础(游戏音乐与音效)</a>
            </div>
            <div class="postCon"><div class="c_b_p_desc">摘要: 在一款游戏中,除了华丽的界面 UI 直接吸引玩家外,另外重要的就是游戏的背景音乐与音效;合适的背景音乐以及精彩的音效搭配会令整个游戏上升一个档次。在 Android 中。常用于播放游戏背景音乐的类是 MediaPlayer, 而用于游戏音效的则是 SoundPool 类。1. MediaPlayer...<a href="http://www.cnblogs.com/yc-755909659/p/4187155.html" class="c_b_p_desc_readmore">阅读全文</a></div></div>
            <div class="clear"></div>
            <div class="postDesc">posted @ 2014-12-30 12:16 Y灬叶超 阅读(45) 评论(0)  <a href ="http://i.cnblogs.com/EditPosts.aspx?postid=4187155" rel="nofollow">编辑</a></div>
            <div class="clear"></div>
复制代码

因此,得到正则表达式如下:

"class=\"postTitle2\" href=\"(.*?)\">(.*?)</a>.*?摘要:(.*?)<a.*?posted @(.*?)Y灬叶超 阅读(.*?) 评论(.*?)<a";

然后通过正则表达式得到匹配的数据,获取需要的数据

复制代码
/**
     * 联网获得数据
     * 
     * @return 数据
     */
    public static List<BlogListInfo> getBlogNetDate(String path, String regex) {
        List<BlogListInfo> result = new ArrayList<BlogListInfo>();
        String blogString = RemoveRN(http_get(path));
        Pattern p = Pattern.compile(regex);
        // 我的博客首页的源代码字符串
        Matcher m = p.matcher(blogString);
        while (m.find()) {// 循环查找匹配字串
            MatchResult mr = m.toMatchResult();
            BlogListInfo info = new BlogListInfo();
            info.setBlogUrl(mr.group(1));
            info.setBlogTitle(mr.group(2));
            info.setBlogSummary(mr.group(3));
            info.setBlogTime(mr.group(4));
            info.setBlogReadNum(mr.group(5));
            info.setBlogReply(mr.group(6));
            result.add(info);
        }
        return result;
    }
复制代码





本文转自秋楓博客园博客,原文链接:http://www.cnblogs.com/yc-755909659/p/4195436.html,如需转载请自行联系原作者
目录
相关文章
|
3月前
|
搜索推荐 UED
从网页到应用:轻松封装网页为个人化APP
随着移动互联网的快速发展,越来越多的人希望将自己喜欢的网页内容封装成应用,以便更便捷地浏览和分享。本文将介绍如何在线生成个性化的APP,让你的网页成为一个独立的应用程序,同时提供了一些常见的工具和技术,帮助你实现这一目标。
35 0
|
3月前
|
Android开发
【安卓版】网页转应用v1.2,生成属于你的专属应用
【安卓版】网页转应用v1.2,生成属于你的专属应用
44 2
|
3月前
|
移动开发 数据可视化 UED
从网页到应用:简易教程教你如何在线生成App
本文将介绍一种简便的方法,让您能够将网页封装成APP。通过这种技术,您可以将您的网页应用程序转化为移动应用程序,从而更好地满足用户的需求。无需编程知识,只需几个简单的步骤,即可轻松将您的网页转化为功能强大的应用程序。
|
3月前
|
安全 API Android开发
Android网络和数据交互: 解释Retrofit库的作用。
Android网络和数据交互: 解释Retrofit库的作用。
39 0
|
3月前
|
移动开发 数据可视化 weex
如何在线生成App:将网页封装成APP
随着移动互联网的快速发展,很多企业和个人都希望能够将自己的网页封装成APP,以便更好地适应用户的移动需求。本文将介绍一种在线生成App的方法,帮助读者实现将网页封装成APP的目标
81 0
|
3月前
|
开发者
如何在线生成App:将网页封装成APP
在移动化的时代,许多企业和个人都希望拥有自己的移动应用程序,但是开发一款优秀的APP需要耗费大量的时间和金钱。而现在,通过在线生成App的方式,我们可以将自己的网页轻松封装成APP,从而实现快速上线。
|
10天前
|
Android开发 开发者
Android网络和数据交互: 请解释Android中的AsyncTask的作用。
Android&#39;s AsyncTask simplifies asynchronous tasks for brief background work, bridging UI and worker threads. It involves execute() for starting tasks, doInBackground() for background execution, publishProgress() for progress updates, and onPostExecute() for returning results to the main thread.
10 0
|
10天前
|
网络协议 安全 API
Android网络和数据交互: 什么是HTTP和HTTPS?在Android中如何进行网络请求?
HTTP和HTTPS是网络数据传输协议,HTTP基于TCP/IP,简单快速,HTTPS则是加密的HTTP,确保数据安全。在Android中,过去常用HttpURLConnection和HttpClient,但HttpClient自Android 6.0起被移除。现在推荐使用支持TLS、流式上传下载、超时配置等特性的HttpsURLConnection进行网络请求。
10 0
|
24天前
|
XML Java Android开发
Android每点击一次按钮就添加一条数据
Android每点击一次按钮就添加一条数据
24 1
|
1月前
|
编解码 小程序 算法
短剧系统开发(网页版/APP/小程序)丨短剧系统开发运营版及源码出售
短剧系统开发功能旨在为用户提供观看、分享和交流短剧作品的平台,涉及多种功能和特性,