• 微软原版系统

  • 一键重装系统

  • 纯净系统

  • 在线技术客服

魔法猪系统重装大师 一键在线制作启动 U 盘 PE 系统 用一键重装的魔法拯救失去灵魂的系统
当前位置:首页 > 教程 > 电脑教程

自己开发搜索引擎关键词检测工具

时间:2015年04月02日 15:26:12    来源:魔法猪系统重装大师官网    人气:6424

由于工作需要,公司让我做一个关键词检测工具,就是根据关键词百度搜搜搜狗等搜索引擎查询获取排名站点地址等相关信息的一个东西。当我接到这个case的时候,首先联想的是一道面试题,就是给你一个html页面让你检索出这个页面的关键信息,这个面试题是比较简单的,就是正则的匹配,因此我也想用正则去获取。不管三七二十一,首先实现再说

其实这个已经不是最初的那个版本了,最古老的那个版本改动面目全非了,这个其实就是四条线程

去读取html然后分析 就这样实现了。

过程中遇到问题有

没有考虑清楚需求,页面分析正则维护难

解决方案一

///
        /// 根据标签名称获取Html
        ///

        /// 标签名称
        /// html
        /// 返回值列表
        public  List GetHtmlTagByName(string TagName, string HTML)
        {
            HTML = Regex.Replace(HTML, @"<\s+", "<", RegexOptions.IgnoreCase);
            HTML = Regex.Replace(HTML, @"\s+>", ">", RegexOptions.IgnoreCase);
            HTML = Regex.Replace(HTML, @"            List TagList = new List();
            string Tag = string.Empty;
            HTML = HTML.ToLower();
            int TagLength = TagName.Length;
            int StartTagLength = TagLength + 2;
            int EndTagLength = TagLength + 3;
            List IndexList = new List();
            for (int i = 0; i < HTML.Length; i++)
            {
                if (HTML[i] == '<')
                {
                    if ((HTML.Length - i) >= StartTagLength)
                    {//
|                         string TemTag = HTML.Substring(i, StartTagLength);
                        if (TemTag == '<' + TagName + ' ' || TemTag == '<' + TagName + '>')
                        {
                            IndexList.Add(i);
                        }
                    }
                    if ((HTML.Length - i) >= EndTagLength)
                    {//

                        string TemTag = HTML.Substring(i, EndTagLength);
                        if (TemTag == "')
                        {
                            if (IndexList.Count > 0)
                            {
                                int S = IndexList[IndexList.Count - 1];
                                IndexList.Remove(IndexList[IndexList.Count - 1]);//移除最后一个
                                TagList.Add(HTML.Substring(S, (i - S) + EndTagLength));
                            }
                        }
                    }
                }
            }
            return TagList;
        }

这就是一个简单的方法获取标签对之间的全部html 实现了所需要的工能,但是害怕稳定性出现问题,所以弃用

弃用之后重新考虑思路 画出流程图

这样思路更加清晰了 也考虑了配置的为题 容易修改 配置截图

做完配置以后其实就是考虑接口实现接口做出最终的版本

测试截图

整个过程中,我觉得自己出现的最大问题就是 考虑问题角度问题,我因为没有做过 就想着如何去实现,在做的过程中发现很多问题 再去扩展 最后代码相当混乱 也许一个月后我自己去修改都不能完成了。以后一定要先考虑好架构(姑且这么说啊),实现如果出现问题是可以解决的。

收获:从内部一步步往外扩展,不如从外部一步步往内部深入!

这个差不多是总结了吧,就这样了吧,我还要做代码优化。

另外如果有人需要这方面的资料 或者这个工具我都可以给你,这个只是公司工作的一个小插件吧,技术含量也没有,主要是正则 ,我们还可以交流。

自己,开发,搜索引擎,关键词,检测,工具,由于,
栏目:电脑教程 阅读:1000 2023/12/27
Win7教程 更多>>
U盘教程 更多>>
Win10教程 更多>>
魔法猪学院 更多>>

Copyright © 2015-2023 魔法猪 魔法猪系统重装大师

本站发布的系统仅为个人学习测试使用,请在下载后24小时内删除,不得用于任何商业用途,否则后果自负,请支持购买微软正版软件。

在线客服 查看微信 返回顶部