• BoKeYuanApp 一个拉取博客园信息的小软件


    BoKeYuanApp是一个小程序。它能展示博客园历史统计信息,包括博客、随笔、文章 、 评论等;和个人统计信息,包括个人积分和排名。项目采用微软wpf框架,使用mvvm模式进行开发。图表展示使用LiveCharts。

    已开源,代码在码云。

    https://gitee.com/SmallUniv/BoKeYuanApp

    重要接口介绍

    • 统计信息拉取接口

        https://www.cnblogs.com/aggsite/AggStats

    • 最新推荐博客和推荐博客排行接口

        https://www.cnblogs.com/aggsite/UserStats

    • 个人信息接口

        https://www.cnblogs.com/xinyf/mvc/blog/sidecolumn.aspx?blogApp=[个人博客id]

        比如,本人的id为xinyf,则,该接口为https://www.cnblogs.com/xinyf/mvc/blog/sidecolumn.aspx?blogApp=xinyf

    开发思路:从接口中拉取信息,然后使用正则表达式解析。

    代码示例:

    public Tuple<int, int, int, int> ParseAggStats()
            {
                bool isfind = false;
                string returnstr = string.Empty;
                int index = 0;
                while (!isfind)
                {
                    returnstr = HttpGetAggStats();
                    index++;
                    if (returnstr.Contains("<ul><li>博客"))
                    {
                        isfind = true;
                    }
                    Console.WriteLine(index);
                }
                //<ul><li>博客 - <span>454322</span></li><li>随笔 - <span>6076429</span></li><li>文章 - <span>634171</span></li><li>评论 - <span>3150217</span></li></ul>
    
                {
                    string p = @"<li>博客s*-s*<span>([d.]+)</span></li><li>随笔s*-s*<span>([d.]+)</span></li><li>文章s*-s*<span>([d.]+)</span></li><li>评论s*-s*<span>([d.]+)</span></li>";
                    string ps = @"<li>博客s*-s*<span>d*</span></li>";
                    Regex reg = new Regex(p);
                    Match match = reg.Match(returnstr);
                    string value0 = match.Groups[0].Value;
                    string strBlog = match.Groups[1].Value;
                    string strJotting = match.Groups[2].Value;
                    string strArticle = match.Groups[3].Value;
                    string strComment = match.Groups[4].Value;
                    string strvalue5 = match.Groups[5].Value;
                    Console.WriteLine(match);
    
                    int blog = int.Parse(match.Groups[1].Value);
                    int jotting = int.Parse(match.Groups[2].Value);
                    int article = int.Parse(match.Groups[3].Value);
                    int comment = int.Parse(match.Groups[4].Value);
    
                    return new Tuple<int, int, int, int>(blog, jotting, article, comment);
    
                }
    
                {
                    string p = @"<li>随笔s*-s*<span>([d.]+)</span></li>";
                    string ps = @"<li>随笔s*-s*<span>d*</span></li>";
                    Regex reg = new Regex(p);
    
                    Match match = reg.Match(returnstr);
                    string value0 = match.Groups[0].Value;
                    string value = match.Groups[1].Value;
                    string value2 = match.Groups[2].Value;
                    Console.WriteLine(match);
                }
            }

    上面函数解析返回园子统计信息。

    效果示例:

    园子统计信息展示

    个人统计信息展示

  • 相关阅读:
    删除:恶意主页
    Winuser.h
    安天磁盘免疫工具研究的初步解答
    C#读写XML文件
    阻止系统关机
    在WebBrowser中屏蔽对话框
    如何用正确的方法写出高质量软件的75条体会
    怪事~
    GRUB4DOS中文自述文档;Grub4dos中文ReadMe
    开始菜单变成的经典样式,XPsuaa样式丢失
  • 原文地址:https://www.cnblogs.com/xinyf/p/10132601.html
Copyright © 2020-2023  润新知