用python结合jieba和wordcloud实现词云效果
0x00 前言
突然想做一个漏洞词云,看看哪些漏洞比较高频,如果某些厂商有漏洞公开(比如ly),也好针对性挖掘。就选x云吧(镜像站 http://wy.hxsec.com/bugs.php )。用jieba和wordcloud两个强大的第三方库,就可以轻松打造出x云漏洞词云。
github地址: https://github.com/theLSA/wooyun_wordcloud
本站下载地址:wooyun_wordcloud
0x01 爬取标题
直接上代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | #coding:utf-8 #Author:LSA #Description:wordcloud for wooyun #Date:20170904 import urllib import urllib2 import re import threading import Queue q0 = Queue.Queue() threads = 20 threadList = [] def gettitle(): while not q0.empty(): i = q0.get() url = 'http://wy.hxsec.com/bugs.php?page=' + str (i) html = urllib.urlopen(url).read() reg = re. compile (r '<li style="width:60%;height:25px;background-color:#FFFFFF;float:left" ><a href=".*?" rel="external nofollow" >(.*?)</a>' ) titleList = re.findall(reg,html) fwy = open ( "wooyunBugTitle.txt" , "a" ) for title in titleList: fwy.write(title + '\n' ) fwy.flush() fwy.close() print 'Page ' + str (i) + ' over!' def main(): for page in range ( 1 , 2962 ): q0.put(page) for thread in range (threads): t = threading.Thread(target = gettitle) t.start() threadList.append(t) for th in threadList: th.join() print '***********************All pages over!**********************' if __name__ = = '__main__' : main() |
0x02 打造词云
还是直接上代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | # coding: utf-8 import jieba from wordcloud import WordCloud import matplotlib.pyplot as plt data = open ( "wooyunBugTitle.txt" , "r" ).read() cutData = jieba.cut(data, cut_all = True ) word = " " .join(cutData) cloud = WordCloud( #设置字体,不指定可能会出现中文乱码 font_path = "msyh.ttf" , #font_path=path.join(e,'xxx.ttc'), #设置背景色 background_color = 'white' , #词云形状 #mask=color_mask, #允许最大词汇 max_words = 2000 , #最大号字体 max_font_size = 40 ) wc = cloud.generate(word) wc.to_file( "wooyunwordcloud.jpg" ) plt.imshow(wc) plt.axis( "off" ) plt.show() |
0x03 效果演示:
0x04 结语
由词云图可以看出,SQL注入依旧风光无限,其次是命令执行,继而是信息泄漏,整体看还是比较直观的。
微信公众号搜索 “ 脚本之家 ” ,选择关注
程序猿的那些事、送书等活动等着你
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 reterry123@163.com 进行投诉反馈,一经查实,立即处理!
相关文章
python numpy库之如何使用matpotlib库绘图
Numpy的主要对象是同构多维数组,它是一个元素表,所有类型都相同,由非负整数元组索引,在Numpy维度中称为轴,这篇文章主要介绍了python numpy库 使用matpotlib库绘图,需要的朋友可以参考下2022-10-10Python Pickling 和 Unpickling 的区别
Python中的Pickling和Unpickling是与数据序列化和反序列化相关的重要概念,本文主要介绍了Python Pickling和Unpickling的区别,具有一定的参考价值,感兴趣的可以了解一下2023-11-11
最新评论