爬虫分析唐诗三百首(二)
上篇讲通过爬虫将唐诗三百首按目录下载下来,接下来可以做一点简单分析:看看哪些诗人被收录的诗作最多。
先看结果,诗作数量排名前二十的,名气大果然不是盖的:
代码如下,读取目录和文件,然后做成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()