用python結(jié)合jieba和wordcloud實(shí)現(xiàn)詞云效果
0x00 前言
突然想做一個(gè)漏洞詞云,看看哪些漏洞比較高頻,如果某些廠商有漏洞公開(比如ly),也好針對(duì)性挖掘。就選x云吧(鏡像站 http://wy.hxsec.com/bugs.php )。用jieba和wordcloud兩個(gè)強(qiáng)大的第三方庫(kù),就可以輕松打造出x云漏洞詞云。
github地址: https://github.com/theLSA/wooyun_wordcloud
本站下載地址:wooyun_wordcloud
0x01 爬取標(biāo)題
直接上代碼:
#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(
#設(shè)置字體,不指定可能會(huì)出現(xiàn)中文亂碼
font_path="msyh.ttf",
#font_path=path.join(e,'xxx.ttc'),
#設(shè)置背景色
background_color='white',
#詞云形狀
#mask=color_mask,
#允許最大詞匯
max_words=2000,
#最大號(hào)字體
max_font_size=40
)
wc = cloud.generate(word)
wc.to_file("wooyunwordcloud.jpg")
plt.imshow(wc)
plt.axis("off")
plt.show()
0x03 效果演示:



0x04 結(jié)語(yǔ)
由詞云圖可以看出,SQL注入依舊風(fēng)光無限,其次是命令執(zhí)行,繼而是信息泄漏,整體看還是比較直觀的。
- python生成詞云的實(shí)現(xiàn)方法(推薦)
- 使用python實(shí)現(xiàn)個(gè)性化詞云的方法
- 詳解Python如何生成詞云的方法
- Python制作詞云圖代碼實(shí)例
- 用Python和WordCloud繪制詞云的實(shí)現(xiàn)方法(內(nèi)附讓字體清晰的秘笈)
- Python基于jieba庫(kù)進(jìn)行簡(jiǎn)單分詞及詞云功能實(shí)現(xiàn)方法
- Python制作詞云的方法
- python詞云庫(kù)wordCloud使用方法詳解(解決中文亂碼)
- python詞云庫(kù)wordcloud的使用方法與實(shí)例詳解
- Python詞云的正確實(shí)現(xiàn)方法實(shí)例
相關(guān)文章
基于PyQt5自制簡(jiǎn)單的文件內(nèi)容檢索小工具
這篇文章主要為大家詳細(xì)介紹了如何基于PyQt5自制一個(gè)簡(jiǎn)單的文件內(nèi)容檢索小工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-05-05
教你用YOLOv5實(shí)現(xiàn)多路攝像頭實(shí)時(shí)目標(biāo)檢測(cè)功能
目標(biāo)檢測(cè)是計(jì)算機(jī)視覺的研究方向之一,下面這篇文章主要給大家介紹了關(guān)于如何利用YOLOv5實(shí)現(xiàn)多路攝像頭實(shí)時(shí)目標(biāo)檢測(cè)功能的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-03-03
pymysql之cur.fetchall() 和cur.fetchone()用法詳解
這篇文章主要介紹了pymysql之cur.fetchall() 和cur.fetchone()用法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-05-05
python判斷文件是否存在,不存在就創(chuàng)建一個(gè)的實(shí)例
今天小編就為大家分享一篇python判斷文件是否存在,不存在就創(chuàng)建一個(gè)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-02-02
python寫入csv時(shí)writerow()和writerows()函數(shù)簡(jiǎn)單示例
這篇文章主要給大家介紹了關(guān)于python寫入csv時(shí)writerow()和writerows()函數(shù)的相關(guān)資料,writerows和writerow是Python中csv模塊中的兩個(gè)函數(shù),用于將數(shù)據(jù)寫入CSV文件,需要的朋友可以參考下2023-07-07
Python連接Mssql基礎(chǔ)教程之Python庫(kù)pymssql
這篇文章主要給大家介紹了關(guān)于Python連接Mssql基礎(chǔ)教程之Python庫(kù)pymssql的相關(guān)資料,文中分別介紹了連接數(shù)據(jù)庫(kù)、游標(biāo)使用注意事項(xiàng)、游標(biāo)返回行為字典變量、使用with語(yǔ)句(上下文管理器)以及調(diào)用存儲(chǔ)過程等的實(shí)現(xiàn),需要的朋友可以參考下2018-09-09

