上篇講通過爬蟲將唐詩三百首按目錄下載下來,接下來可以做一點簡單分析:看看哪些詩人被收錄的詩作最多。
先看結果,詩作數量排名前二十的,名氣大果然不是蓋的:
代碼如下,讀取目錄和文件,然後做成pandas的DataFrame,按詩人groupby,然後size倒排序,取前二十,然後用matplotlab展示處理。matplotlab中文問題,我就直接下載了一個simhei.ttf,放在代碼目錄裏,然後指定。
再下一篇我會按照詩人的生平來排,看看誰活得最久,誰在哪個時代,經歷了安史之亂。
import pandas as pd
import os
import matplotlib.pyplot as plt
import matplotlib as mpl
poems =[] #詩詞列表
author_path='唐詩三百首'
authors=os.listdir(author_path)
for author in authors :
poem_files= os.listdir(author_path+'/'+str(author))
for poem_file in poem_files :
poem ={}
title=str(poem_file)[:-4]
poem["詩詞"]=title
poem["詩人"]=str(author)
poems.append(poem)
poem_data=pd.DataFrame(poems)
print(poem_data)
#支持中文,要指定下
mpl.rcParams['font.sans-serif'] = ['SimHei']
#按詩人分組,然後排序,然後只取前10
author_data=poem_data.groupby('詩人').size().sort_values(ascending=False).head(20)
author_data.plot(kind='barh',figsize=(10,6))
plt.show()