爬蟲分析唐詩三百首(二)

上篇講通過爬蟲將唐詩三百首按目錄下載下來,接下來可以做一點簡單分析:看看哪些詩人被收錄的詩作最多。

先看結果,詩作數量排名前二十的,名氣大果然不是蓋的:

代碼如下,讀取目錄和文件,然後做成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()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章