C#获取网页源码,自动判断网页字符集编码

最近开始打算重新学习C#,并且尝试做点C#练习。而最让我感兴趣的还是和网站相关的东西。那就做个获取网站源码,采集文章的功能吧。

根据网上的资料,使用WebClient来获取源码,很容易就能得到网页源码。但是,发现,不同网站的网页字符编码就不一样的,如何自动分别不同网站的字符编码,而正确解释网页中的汉字呢。在C#里,提供了丰富的工具类库,可以轻松的转码。但是,却发现不能自动获取网站上的字符编码而自动正确的解释源码,而导致汉字显示乱码。以前我也用JAVA做过这样的功能,获取网站源码,同样,在JAVA的各种获取网站源码的类库里,也不能自动根据网页字符编码自动正确解释编码,只能我们自己手动来做了。

我的解决办法是先采用系统默认的编码从stream里得到源码,再使用正则表达式获取源码中的[获取网页字符编码描述信息],这个信息,一般来说,网页里都会有的,在网页源码的<head>里,类似这样的代码:<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />(其实不一样完全这样,有些不规范的,没有双引号,或者最后面没有/闭合,所以,正则表达式得考虑周全些),从这个代码里来获取编码信息,再判断系统当前的默认编码是否和这个一样,如果不同,再使用网页中取到的编码来重新从stream里解释取得网页源码。

源码如下:(下面这段代码是一个完整的获取网页源码,且自动正确解释汉字)


Tags: C#  网页源码  CSDN  爬虫  乱码  
开始研究Lucene,这是工作
经理给我两新任务,第一个就是Lucene来开发一个站内搜索。这个东西我以前有过兴趣,研究过一点点,但是,没有上手,后来就放弃了,没想到,现在还有机会重新捡起来。心里甚是开心。找了两天的资料,现在,基本上对Lucene有了一定的了解,也对这个任务有了点想法。要做这样一个站内搜索,其实就是对网站进行索引,以及搜索,这两个功能正好是Lucene的功能,但是,经理要求,要像GG和百度一样,对网页进行索引,而不是对数据库进行索引,所以,我不得不考虑再做一个WEB爬虫来对站内的网页进行索引。整个任务,分析下来,就有三块了,第一,爬虫模块,第二,索引和搜索模块(Lucene),第三,索引搜索中用到的中文分词模块。这三大块,没有一块是我现在熟悉的,看来,一切得从0开始。----------------------------索引和搜索模块(Lucene),简单介绍一下:
Tags: Lucene  搜索引擎  索引  中文分词  爬虫  
分页:[«] 1[»]
分类最近文章
    <#CACHE_INCLUDE_CATEGORY__HTML#>
Powered By Z-Blog   STYLE by busfly . FatMouse
Copyright © 2007 巴士飞扬技术博客. . 沪ICP备07027972号. 会员群1(J2EE为主):3769186.