zoukankan      html  css  js  c++  java
  • 利用正则表达式获取博客园随笔(二)

      有几个朋友提到说我昨天开头提到的那些跟正则不符,其实确实也是不符合的。先来说说原因吧,之前呢因为各种原因,好久没上VS了,然后系统又是自动打补丁的,然后就更新了那2个补丁。然后吧,前天想开始写的时候打开一看吧,新建错误,打开原来的显示VS出现问题什么的。然后就想想自己这系统装了将近4个月了,然后就把他给还原了,所以才有了前天的那篇。然后昨晚回来打开一看,又是这样。觉得大家应该会碰到,所以就说了一下,顺便自己作为一个保留。废话不多说了开始。

      昨天我们写的那个正则已经可以把每条随笔给匹配出来了,如下图所示:

    然后么,我们再仔细观察单条随笔上的内容,然后找寻规律,我匹配出来的正则是这样的:

    "<h3><a.*?href="(?<href>.*?)".*?>(?<Title>.*?)</a></h3>.*?<a .*? class="lightblue".*?>(?<Author>.*?)</a>.*?发布于.*?(?<time>.*?)<span"

    (感觉有点烂的样子,但好歹已经可以匹配出来了不是么,各位有更好的匹配求推荐啊)

    既然匹配出来了那就可以获取了.下面贴上代码

    DataTable dt = new DataTable();//定义一个datatable来存放数据
    dt.Columns.Add("Title");
    dt.Columns.Add("Author");
    dt.Columns.Add("time");
    dt.Columns.Add("href");
    string Html= GetHtml("http://www.cnblogs.com/");
    Regex regexContent = new Regex("<div class="post_item_body">(?<content>.*?)<div class="clear"></div>",RegexOptions.Singleline);//获取单个随笔数据
    Regex regexProperty = new Regex("<h3><a.*?href="(?<href>.*?)".*?>(?<Title>.*?)</a></h3>.*?<a .*? class="lightblue".*?>(?<Author>.*?)</a>.*?发布于.*?(?<time>.*?)<span",
        RegexOptions.Singleline);//获取标题、时间、链接、作者等
    if (regexContent.IsMatch(Html))
        {
            var blog = regexContent.Matches(Html);
            foreach (Match item in blog)
            {
                if (regexProperty.IsMatch(item.ToString()))
                     {
                          var Property = regexProperty.Match(item.ToString());
                          dt.Rows.Add(Property.Groups["Title"].Value, Property.Groups["Author"].Value, Property.Groups["time"].Value, Property.Groups["href"].Value);
    
                     }
             }
        }
        dgvCnblogs.AutoGenerateColumns = false;
        dgvCnblogs.DataSource = dt;

    这个加上昨天的那些可以直接运行的。下面放上效果:

    各位可以自己运行看看。还是那句话:各位有问题或者有更好的方法请留言。

  • 相关阅读:
    深度学习模型调参
    人脸神经网络及算法整理
    【转】python pip install指定国内源
    人脸识别数据集整理
    卷积神经网络整理+ResNet50
    【转载】人脸检测通用评价标准
    【转载】InsightFace算法学习
    Linux手动识别4G模块
    openwrt监控程序(守护进程)
    测试流程详解
  • 原文地址:https://www.cnblogs.com/suixingerxing/p/3231356.html
Copyright © 2011-2022 走看看