现在的位置: 首页 > 综合 > 正文

浅谈文章采集,就拿博客园热门文章举例!

2012年04月13日 ⁄ 综合 ⁄ 共 4396字 ⁄ 字号 评论关闭
      以前写了篇“百度视频采集"的思路简介,看到唯一一个人留言希望我总结一下新闻采集。今天就拿博客园的热门文章采集做个例子。说明前我得声明一点,经过在博客园混了几个月后,发现博客园首页发布的文章一般都是高手,很有参考价值。可我是一个新手,我请大家此文章的任何质疑直接留言,因为您发现问题不说出来,可能我永远会认为自己写的是正确的。
      下面进入正题。首先需要注意的是采集网页上数据的唯一方式是必须获取需要采集页面的源代码,这点想必大家很清楚。因为我们不知道对方网站的数据库服务器连接方式,我们只能在页面的源代码中找寻我们想要的东西。这无疑就是对大量字符串进行处理,那么我们如何处理这些含有大量html标记与内容的代码呢?可能解决问题的方式有很多种,但我认为用正则表达式来解决这个问题会很好。
      通过上面的话,我谈到了两个知识点,我们来总结一下流程。
      1.获取需要采集页面的源代码。
      2.利用正则表达式处理这些代码中我们想要的内容。
      下面做一些准备工作,写一个实体类存储文章的信息。例如:标题、作者、发布时间、浏览次数,等。
文章信息实体类

      获取采集网页源代码的方式,也很简单,我单独做成了一个类。

获取网页源代码

      拿到源代码,该进入关键步骤了,写正则表达式采集数据。在采集之前我们需要了解网页源代码的特征,如果都不知道我们想要什么,恐怕无法写出正则表达式。我们要采集的页面是 http://www.cnblogs.com/TopPosts.aspx 这个页面,博客园文章阅读排行榜。今日阅读排行、
昨日阅读排行
等信息。但我们要得到的只是如下信息:

· 我在外资公司的2个月 (阅读:1909) (评论:21) (2008-6-25 13:44) yesry
· 为什么尽量避免使用触发器? (阅读:1490) (评论:15) (2008-6-25 03:35) 凉面
· Discuz!NT 系统架构分析 (阅读:1391) (评论:18) (2008-6-25 12:35) 韩龙
· 硬盘那点事儿 (阅读:1342) (评论:15) (2008-6-25 11:16) 李战

只需要得到标题、阅读次数、评论、时间、作者即可。那么我们就来分析一下关键信息的源代码特征。

        <tr>
            
<td style="width:80%">
                · 
<id="ctl00_cphMain_TopPostsPaged1_PostsRepeater_ctl01_lnkTitle" href="http://www.cnblogs.com/yesry/archive/2008/06/25/1229587.html" target="_blank">

抱歉!评论已关闭.