科赛平台--2017中国网络安全技术对抗赛(初赛第14名分享)-第一题
来源:互联网 发布:软件测试流程是什么 编辑:程序博客网 时间:2024/05/01 23:59
这次比赛要谢谢在“西安电子科技”大学的研究生师兄,跟着他们学到了很多
这次网络对抗赛一共有两个赛题,
一、面对第一题的完整解法讲下。
题目要求:题目提供3种网页的源代码,一共有钓鱼网页(多为仿冒页面)、被黑网页(仅指植入黑链网页)、正常网页这3种,训练集规模是49121个网页,和其余的对抗学习的比赛一样,这个竞赛提供的黑样本也是极少,不过时间长了也记不太清了,好像是400左右。预测集规模是近25万。题目评分方式是:通过对识别仿冒页面、被黑页面(植入黑链)的准确率以及算法情况进行评分。
具体做法
1:特征方面
代码:
soup = BeautifulSoup(file_data, "html.parser") xx = u'([\u4e00-\u9fa5]+)' p = r"(?<=<title>).+?(?=</title>)"
Part1:先使用 BeautifulSoup 提取出来网页title,然后用正则提出里面的中文 temp = str(soup.title) result = re.findall(p,temp)#得到网页title p = r"<a[^>]+?href=.*>([^<]+)<\/a>"
Part2:然后直接用正则,提取出来网页正文里面,超链接后面的文本 result.extend(re.findall(p,file_data))#找到超链接后面的文本 temp = soup.get_text()
Part3: 先使用 BeautifulSoup get_text函数,将网页的文本内容(也就是代码)转换成 字符串,然后用正则提取出来所有中文 temp = re.findall(xx,temp)#找到整个网页文本中的中文 result.extend(temp) return result
第三步明明可以提取出来所有的中文,为什么还要做前两步:因为在钓鱼网页、黑网页中,那两部分是最能辨认出来为黑网页的内容 ,而我们使用的是 tfidf 这个概念来进行提取最重要的关键词,这种理念中,
所以如果在一个样本中,那些具有很明显区分 正负样本的词能多几次,这种词能更好的被筛选出来当做“特征词”
然后使用这个函数:# max_features=3000,通过在语料库中的词频,挑出来最重要的3000个词来进行判断tv = TfidfVectorizer(sublinear_tf = True, max_df = 0.5, encoding='gbk',max_features=3000)直接选取出来3000个最重要的单词!
2:模型方面使用
XGBClassifiersvm.SVCExtraTreesClassifierMLPClassifier进行投票选择,对每个网页的标签进行打标3:提分点,这也是对抗学习的常用方法,因为训练集给出的负样本很少,所以我们一半会把测试集中预测概率接近0 1的当做已知样本加到训练集中再进行训练,如此反复
阅读全文
0 0
- 科赛平台--2017中国网络安全技术对抗赛(初赛第14名分享)-第一题
- 百度杯全国网络安全技术对抗赛(BCTF)——真假难辨
- 从亿达科技到中国搜索技术分享平台
- Hdu 4500 (2013年 腾讯 马拉松 初赛 第0场 第一题 )
- 百度之星初赛第二轮第一题超时代码(可能还有错误)
- 中国区第一季度网络安全威胁报告
- 首届广西网络安全技术大赛初赛通关攻略
- Linux网络安全技术与实现(第2版)
- 2017中国网络安全大会,安普诺创始人就WebShell检测做分享
- 计蒜客-2017初赛第一场
- 2012蓝桥杯初赛第一题
- 院赛1005(对抗赛)
- 对抗赛
- 对抗赛
- 对抗赛
- 2017第五届中国网络安全大会( NSC 2017 )通知
- HDU 5246 超级赛亚ACMer(百度之星初赛第一题)
- 2017 计蒜之道 初赛 第一场 A题(阿里的新游戏)
- 落到天上,升入谷底
- JAVA中复制数组的五种方法
- c++ 内联函数 (讲解的TM真好)
- RN入门
- 数据库悲观锁
- 科赛平台--2017中国网络安全技术对抗赛(初赛第14名分享)-第一题
- LinkedHashMap源码分析
- Java里一个线程调用了Thread.interrupt()到底意味着什么?
- 如何画出高端大气漂亮的图
- 面向对象拖拽实现;
- Linux软件安装
- 用来学习使用编辑器的第一篇博客
- js实现等待加载“转圈圈”效果
- 前端之HTML面试题集锦