您的位置:首页 > 其它

利用正则表达式获取博客园随笔(一)

2013-07-31 23:21 218 查看
  晚上起先和朋友们跑步去了,然后回来之后洗了个澡,打开VS新建项目发现都会弹出一个问题

/// <summary>
/// 根据网址获取页面源码
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public string GetHtml(string url)
{
string ContentHtml = "";
try
{
HttpClient hc = new HttpClient();
hc.Url = url;
if (!hc.Url.Contains("http://"))//如果输入的网址没有包含http:// 则手动添加
{
hc.Url = "http://" + hc.Url;
}
ContentHtml = hc.GetString();
}
catch (Exception e)//如果上面的执行出错,则返回继续执行
{
return GetHtml(url);
}
return ContentHtml;
}


View Code
  然后再观察每条随笔的规律,我们发现没条的开头是<div class="post_item_body">,结尾是<div class="clear">,那我们就可以根据这个规律来写出正则:Regex regexContent = new Regex("<div class=\"post_item_body\">(?<content>.*?)<div class=\"clear\"></div>",RegexOptions.Singleline);
然后可以使用这个正则来获取我们需要匹配的内容了

       string Html= GetHtml("http://www.cnblogs.com/");
Regex regexContent = new Regex("<div class=\"post_item_body\">(?<content>.*?)<div class=\"clear\"></div>",RegexOptions.Singleline);
string blog = regexContent.Match(Html).Groups["content"].Value.ToString();


在这里我用到的正则匹配工具是Expresso,有需要的朋友可以留言。当然,如果我有什么地方写的不好的,欢迎各位指出。晚上就先到这里了,该洗洗睡了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: