
安装
首先需要一堆python的第三方库,俺用的是大清的镜像,一点都不卡哦。
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple jieba
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple wordcloud
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tushare
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple openpyxl
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple datetime
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple imageio
文字稿件的获取
俺是从tushare金融社区获得的文字稿,这是网址:https://tushare.pro/document/2?doc_id=154。
此外,你需要注册一个账号,在经过实名验证之后获得20个积分,就可以调取数据了。
代码
import wordcloud
import jieba
import openpyxl
from imageio import imread
import datetime
import tushare as ts
import time
c=openpyxl.Workbook()#创建一个工作簿
b=c.active#创建一个工作表
ts.set_token('token号')
pro = ts.pro_api()#对接tushare接口
这里注意,你要填入自己在tushare的个人主页中的token号之后,才能对接接口
end=input('请输入类似20180211的开始日期')
start=input('请输入类似20180217的结束日期')
datestart = datetime.datetime.strptime(start, '%Y%m%d')
dateend = datetime.datetime.strptime(end, '%Y%m%d')#获得起始时间
d=''#定义一个空字符串
end和start的命名反了是因为是俺从网上扒来的代码,就懒得改了,凑合着用吧。
while datestart >= dateend:
url_time = datestart.strftime('%Y%m%d')
datestart -= datetime.timedelta(days=1)
df = pro.cctv_news(date=url_time)
b['A1']=url_time
for i in range(len(df.index)):
b['A'+str(i+2)]=df.index[i]
b['B'+str(i+2)]=df['title'][i]
b['C'+str(i+2)]=df['content'][i]
d = d + b['B' + str(i + 2)].value + b['C' + str(i + 2)].value
c.save(url_time+'新闻联播.xlsx')
print('已存入同级文件夹目录下,命名为'+url_time+'新闻联播.xlsx')
if datestart >= dateend:
time.sleep(31)#tushare限制访问时间一分钟2次
读取每一天的数据,返回的类型是DataFrame.然后将其存入excel表格备用,同时将文稿都读入字符串d中.
d=jieba.lcut(d)
d=' '.join(d)
g=imread(r'C:Users大帅哥Desktopstar.png')#大帅哥是俺的用户名
e=wordcloud.WordCloud(width=1920,height=1920,background_color=(255,255,255),stopwords={},mask=g,font_path=r'C:WindowsFontsmsyh.ttc')
e.generate(d)
pic=e.to_image()
e.to_file(end+'至'+start+'新闻联播词云.png')
pic.show()
用jieba进行分词,最后用五星制作为分词就ok了.

下面是完整代码
import wordcloud
import jieba
import openpyxl
from imageio import imread
import datetime
import tushare as ts
import time
c=openpyxl.Workbook()#创建一个工作簿
b=c.active#创建一个工作表
ts.set_token('token号')
pro = ts.pro_api()#对接tushare接口
end=input('请输入类似20180211的开始日期')
start=input('请输入类似20180217的结束日期')
datestart = datetime.datetime.strptime(start, '%Y%m%d')
dateend = datetime.datetime.strptime(end, '%Y%m%d')#获得起始时间
d=''#定义一个空字符串
while datestart >= dateend:
url_time = datestart.strftime('%Y%m%d')
datestart -= datetime.timedelta(days=1)
df = pro.cctv_news(date=url_time)
b['A1']=url_time
for i in range(len(df.index)):
b['A'+str(i+2)]=df.index[i]
b['B'+str(i+2)]=df['title'][i]
b['C'+str(i+2)]=df['content'][i]
d = d + b['B' + str(i + 2)].value + b['C' + str(i + 2)].value
c.save(url_time+'新闻联播.xlsx')
print('已存入同级文件夹目录下,命名为'+url_time+'新闻联播.xlsx')
if datestart >= dateend:
time.sleep(31)#tushare限制访问时间一分钟2次
d=jieba.lcut(d)
d=' '.join(d)
g=imread(r'C:Users大帅哥Desktopstar.png')#大帅哥是俺的用户名
e=wordcloud.WordCloud(width=1920,height=1920,background_color=(255,255,255),stopwords={},mask=e,font_path=r'C:WindowsFontsmsyh.ttc')
e.generate(d)
pic=e.to_image()
e.to_file(end+'至'+start+'新闻联播词云.png')
pic.show()