用python結(jié)合jieba和wordcloud實現(xiàn)詞云效果
0x00 前言
突然想做一個漏洞詞云,看看哪些漏洞比較高頻,如果某些廠商有漏洞公開(比如ly),也好針對性挖掘。就選x云吧(鏡像站 http://wy.hxsec.com/bugs.php )。用jieba和wordcloud兩個強(qiáng)大的第三方庫,就可以輕松打造出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è)置字體,不指定可能會出現(xiàn)中文亂碼
font_path="msyh.ttf",
#font_path=path.join(e,'xxx.ttc'),
#設(shè)置背景色
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 結(jié)語
由詞云圖可以看出,SQL注入依舊風(fēng)光無限,其次是命令執(zhí)行,繼而是信息泄漏,整體看還是比較直觀的。
相關(guān)文章
教你用YOLOv5實現(xiàn)多路攝像頭實時目標(biāo)檢測功能
目標(biāo)檢測是計算機(jī)視覺的研究方向之一,下面這篇文章主要給大家介紹了關(guān)于如何利用YOLOv5實現(xiàn)多路攝像頭實時目標(biāo)檢測功能的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-03-03
pymysql之cur.fetchall() 和cur.fetchone()用法詳解
這篇文章主要介紹了pymysql之cur.fetchall() 和cur.fetchone()用法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
python判斷文件是否存在,不存在就創(chuàng)建一個的實例
今天小編就為大家分享一篇python判斷文件是否存在,不存在就創(chuàng)建一個的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-02-02
python寫入csv時writerow()和writerows()函數(shù)簡單示例
這篇文章主要給大家介紹了關(guān)于python寫入csv時writerow()和writerows()函數(shù)的相關(guān)資料,writerows和writerow是Python中csv模塊中的兩個函數(shù),用于將數(shù)據(jù)寫入CSV文件,需要的朋友可以參考下2023-07-07
Python連接Mssql基礎(chǔ)教程之Python庫pymssql
這篇文章主要給大家介紹了關(guān)于Python連接Mssql基礎(chǔ)教程之Python庫pymssql的相關(guān)資料,文中分別介紹了連接數(shù)據(jù)庫、游標(biāo)使用注意事項、游標(biāo)返回行為字典變量、使用with語句(上下文管理器)以及調(diào)用存儲過程等的實現(xiàn),需要的朋友可以參考下2018-09-09

