最初对抓取的文章处理使用正则表达式统一处理,代码如下:
Regex regex_p = new Regex(@"<p>s*</p>", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant | RegexOptions.Multiline | RegexOptions.Singleline); contents = regex_p.Replace(contents, "");
有一片文章字符串看上去是空行,但发现通过这个正则匹配不到空行,通过调试取到字符串发现字符串比较特殊,字符串的长度应该是几个字符,但是它的Length却2000多,非常的郁闷。
通过循环字符串的每个字符,发现字符在C#中显示的是 65279 '',然后扒了扒文章的内容发现在网页中显示的是无数个实体。百度了下这个字符在C#中的表现最终找到一篇介绍:
http://www.fileformat.info/info/unicode/char/feff/index.htm
在C#中统一替换掉改特殊字符使用代码:
contents = contents.Replace("uFEFF", "");
--end--