关键词检测工具

news/2024/11/16 17:35:54/

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

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

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

过程中遇到问题有

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

View Code
 1 /// <summary>
 2         /// 根据标签名称获取Html
 3         /// </summary>
 4         /// <param name="TagName">标签名称</param>
 5         /// <param name="HTML">html</param>
 6         /// <returns>返回值列表</returns>
 7         public  List<string> GetHtmlTagByName(string TagName, string HTML)
 8         {
 9             HTML = Regex.Replace(HTML, @"<\s+", "<", RegexOptions.IgnoreCase);
10             HTML = Regex.Replace(HTML, @"\s+>", ">", RegexOptions.IgnoreCase);
11             HTML = Regex.Replace(HTML, @"</\s+", "</", RegexOptions.IgnoreCase);
12             List<string> TagList = new List<string>();
13             string Tag = string.Empty;
14             HTML = HTML.ToLower();
15             int TagLength = TagName.Length;
16             int StartTagLength = TagLength + 2;
17             int EndTagLength = TagLength + 3;
18             List<int> IndexList = new List<int>();
19             for (int i = 0; i < HTML.Length; i++)
20             {
21                 if (HTML[i] == '<')
22                 {
23                     if ((HTML.Length - i) >= StartTagLength)
24                     {//<div> | <div\s
25                         string TemTag = HTML.Substring(i, StartTagLength);
26                         if (TemTag == '<' + TagName + ' ' || TemTag == '<' + TagName + '>')
27                         {
28                             IndexList.Add(i);
29                         }
30                     }
31                     if ((HTML.Length - i) >= EndTagLength)
32                     {//</div>
33                         string TemTag = HTML.Substring(i, EndTagLength);
34                         if (TemTag == "</" + TagName + '>')
35                         {
36                             if (IndexList.Count > 0)
37                             {
38                                 int S = IndexList[IndexList.Count - 1];
39                                 IndexList.Remove(IndexList[IndexList.Count - 1]);//移除最后一个
40                                 TagList.Add(HTML.Substring(S, (i - S) + EndTagLength));
41                             }
42                         }
43                     }
44                 }
45             }
46             return TagList;
47         }

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

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

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

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

测试截图

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

收获:从内部一步步往外扩展,不如从外部一步步往内部深入!学习思路和编程思想,积累经验。练习所学

转载于:https://www.cnblogs.com/QLJ1314/archive/2013/01/07/2819033.html


http://www.ppmy.cn/news/578599.html

相关文章

Baumer工业相机堡盟工业相机如何通过BGAPISDK设置多帧采集模式(C++)

Baumer工业相机堡盟工业相机如何通过BGAPISDK设置多帧采集模式&#xff08;C&#xff09; Baumer工业相机Baumer工业相机BGAPISDK和多帧采集模式的技术背景Baumer工业相机通过BGAPISDK设置多帧采集模式功能1.引用合适的类文件2.通过BGAPISDK设置多帧采集模式功能 Baumer工业相机…

米哈游:《八重樱 · 桃源恋歌》短片制作技术分享

本文将由米哈游技术总监贺甲分享米哈游最新动画短片《八重樱桃源恋歌》中的制作技术。 《八重樱桃源恋歌》米哈游使用Unity实时渲染的MMD次世代动画短片《八重樱桃源恋歌》&#xff0c;今年2月在B站发布以来&#xff0c;获得了260多万的播放量。《八重樱桃源恋歌》这部短片&a…

【枭·音乐】用音乐酝酿情愫,谱仙侠长歌

秋日伊始&#xff0c;凉薄的北风便已预告了凛冬渗骨之寒。刚刚从国庆长假恢复日常状态&#xff0c;捧着热咖啡和奶茶&#xff0c;眼神惺忪的你&#xff0c;是否想起草长莺飞的早春&#xff0c;舍却凡事浪迹天涯的幻想&#xff1f;由软星科技&#xff08;北京&#xff09;有限公…

Android12 获取音频输出列表设置音频输出通道

1.获取音频输出列表 有个需求是APP端能够获取所有音频输出列表,研究了很长时间源码,发现只有这个API合适。 AudioDeviceInfo[] devices = audioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS); 这个API能够获取到设备上所有可用的输出,且APP可以调用。 2.设置音…

Unity 3D开发--音频管理

接手了前同事们的一个元宇宙的项目&#xff0c;里面有各楼层不同的背景音乐&#xff0c;人物的一些动作音效&#xff0c;一些书籍音频&#xff0c;语音问答&#xff0c;投屏语音通信&#xff0c;靠近播放视频等&#xff0c;需要对音频做各种播放、暂停、切换、停止等操作&#…

服务全球开发者!灵雀云与Ubuntu推出一体化云原生解决方案

近日&#xff0c;国内企业级云原生解决方案的领军企业灵雀云&#xff0c;与操作系统软件Ubuntu的原厂企业Canonical&#xff08;以下简称Ubuntu&#xff09;共同宣布达成战略合作。双方将提供操作系统软件Ubuntu与云原生开放平台ACP的深度融合一体化解决方案&#xff0c;为开发…

U3D游戏开发框架(四)——音频管理器

一&#xff1a;目的 游戏音频的播放在任何游戏中都占据非常重要的地位&#xff0c;音频的播放可以分为两种&#xff0c;一种为游戏音乐&#xff0c;另一种为游戏音效。前者适用于较长的音乐&#xff0c;如游戏背景音乐。第二种适用于比较短的游戏音乐&#xff0c;如开枪瞬间的…

【7. 无源演奏音乐】

无源演奏音乐 树梅派无源蜂鸣器C调音符与频率对照表 树梅派无源蜂鸣器 /**************************************** 时间&#xff1a;* 内容&#xff1a;无源蜂鸣器演奏&#xff0c;简单版****************************************/#include<wiringPi.h> #include<s…