tushare pro接口_利用tushare获取新闻联播文字稿并制作词云

2940e5d7df7759b6904e15614ccf6a40.png

安装

首先需要一堆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了.

6090cfcd6fe49cc90b5eccff9b7e32b0.png
图与程序不符,但只有2020710-712的没有敏感词

下面是完整代码

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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值