用python结合jieba和wordcloud实现词云效果


Posted in Python onSeptember 05, 2017

0x00 前言

突然想做一个漏洞词云,看看哪些漏洞比较高频,如果某些厂商有漏洞公开(比如ly),也好针对性挖掘。就选x云吧(镜像站 http://wy.hxsec.com/bugs.php )。用jieba和wordcloud两个强大的第三方库,就可以轻松打造出x云漏洞词云。

github地址: https://github.com/theLSA/wooyun_wordcloud

本站下载地址:wooyun_wordcloud

0x01 爬取标题

直接上代码:

#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 打造词云

还是直接上代码:

# 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 效果演示:

用python结合jieba和wordcloud实现词云效果

用python结合jieba和wordcloud实现词云效果

用python结合jieba和wordcloud实现词云效果

0x04 结语

由词云图可以看出,SQL注入依旧风光无限,其次是命令执行,继而是信息泄漏,整体看还是比较直观的。

Python 相关文章推荐
Python进行数据科学工作的简单入门教程
Apr 01 Python
Linux中安装Python的交互式解释器IPython的教程
Jun 13 Python
简述:我为什么选择Python而不是Matlab和R语言
Nov 14 Python
python 3.5实现检测路由器流量并写入txt的方法实例
Dec 17 Python
python中requests和https使用简单示例
Jan 18 Python
Python从零开始创建区块链
Mar 06 Python
使用Python微信库itchat获得好友和群组已撤回的消息
Jun 24 Python
Django框架创建mysql连接与使用示例
Jul 29 Python
django 单表操作实例详解
Jul 30 Python
浅谈Python的方法解析顺序(MRO)
Mar 05 Python
python计算Content-MD5并获取文件的Content-MD5值方式
Apr 03 Python
Python 中如何写注释
Aug 28 Python
python基础_文件操作实现全文或单行替换的方法
Sep 04 #Python
python 生成器协程运算实例
Sep 04 #Python
python 文件操作删除某行的实例
Sep 04 #Python
Django数据库操作的实例(增删改查)
Sep 04 #Python
python中Matplotlib实现绘制3D图的示例代码
Sep 04 #Python
Python2实现的LED大数字显示效果示例
Sep 04 #Python
Python2随机数列生成器简单实例
Sep 04 #Python
You might like
php基于curl主动推送最新内容给百度收录的方法
2016/10/14 PHP
php实现微信原生支付(扫码支付)功能
2018/05/30 PHP
js 鼠标拖动对象 可让任何div实现拖动效果
2009/11/09 Javascript
Javascript类定义语法,私有成员、受保护成员、静态成员等介绍
2011/12/08 Javascript
JavaScript中变量提升 Hoisting
2012/07/03 Javascript
jquery时间下拉框小例子
2013/04/15 Javascript
jQuery实现动画效果的简单实例
2014/01/27 Javascript
Jquery获取和修改img的src值的方法
2014/02/17 Javascript
jQuery中replaceWith()方法用法实例
2014/12/25 Javascript
js对字符的验证方法汇总
2015/02/04 Javascript
$.extend 的一个小问题
2015/06/18 Javascript
JS简单限制textarea内输入字符数量的方法
2015/10/14 Javascript
深入解析JavaScript的闭包机制
2015/10/20 Javascript
jquery表单插件form使用方法详解
2017/01/20 Javascript
微信小程序 template模板详解及实例代码
2017/03/09 Javascript
Vue组件之自定义事件的功能图解
2018/02/01 Javascript
layer.prompt使文本框为空的情况下也能点击确定的方法
2019/09/24 Javascript
对python中for、if、while的区别与比较方法
2018/06/25 Python
python版大富翁源代码分享
2018/11/19 Python
python批量创建指定名称的文件夹
2019/03/21 Python
PyTorch中Tensor的维度变换实现
2019/08/18 Python
对python while循环和双重循环的实例详解
2019/08/23 Python
python实现电子词典
2020/03/03 Python
详解Python中string模块除去Str还剩下什么
2020/11/30 Python
全面介绍python中很常用的单元测试框架unitest
2020/12/14 Python
python单例模式的应用场景实例讲解
2021/02/24 Python
SHEIN香港:价格实惠的女性时尚服装
2018/08/14 全球购物
体育专业个人求职信范文
2013/12/27 职场文书
校庆筹备方案
2014/03/30 职场文书
护士长竞聘演讲稿
2014/04/30 职场文书
司法建议书范文
2014/05/13 职场文书
道歉信范文
2015/05/12 职场文书
惊涛骇浪观后感
2015/06/05 职场文书
交通事故协议书范本
2016/03/19 职场文书
解决Mysql的left join无效及使用的注意事项说明
2021/07/01 MySQL
Win11如何启用启动修复 ? Win11执行启动修复的三种方法
2022/04/08 数码科技