日期:2014-05-18  浏览次数:20926 次

使用C#与正则表达式分析hao123.com的网址列表

最近需要一些对网址的分类,来检测本地用户上网的习惯,这样我们就需要一些域名的分类,首先我们就想到了www.hao123.com

通过这个分析,大家可以了解到C#获取网页源代码、调用正则表达式的一些简单方法

以及一些使用中的技巧。


1、获取网页源代码

为了方便,我们在这里直接写成函数的形式,如下:

使用上面的代码可以解决大多数问题,在有的时候会发现获取的源代码和浏览器看到的不一样,这时候就需要用UA来处理。


2、建立一个网址类

这个很简单


3、获取hao123.com的主页源代码

使用第一步中的函数分析www.hao123.com,得到源代码source。

通过对网页的分析,我们可以看出hao123主要的网址分布在右侧的列表部分,如下图


通过这个列表就基本可以分析出我们想要的分类网址了

因为点击前面的绿色字可以进入详细列表,我们对这个绿色字的源代码进行分析,发现是:

<span class="box-sort_title"><a href="http://v.hao123.com/movie/">影 视</a></span>

而且是有且仅有这样子的才是分类列表的入口,所以我们就可以用这段字符串作为我们的模板进行分析:


4、正则表达式分析:

我们需要的是a href="后面的链接和链接后面的标题,在此,我们把他们改成(.*?),即

<span class="box-sort_title"><a href="(.*?)">(.*?)</a></span>

.*表示任意字符串 ?表示非贪心处理 两边的括号表示我们需要在下面用到它。

通过这样的处理,在正则表达式分析后我们就可以得到网址和对应的分类: