编写获取新闻标题的代码
之前写过获取新闻标题的代码,请看:
link
编写可视化代码
“jieba”库简单介绍
"jieba"也就是俗称的结巴,是为了中文分词的python库。
这里通过代码简单介绍jieba中的精确模式和全模式:
import jieba
seg_list = jieba.cut("我来到北京清华大学", cut_all=False)
print("精确模式: " + "/ ".join(seg_list))# 精确模式
seg_list = jieba.cut("我来到北京清华大学", cut_all=True)
print("全模式: " + "/ ".join(seg_list)) # 全模式
结果
精确模式: 我/ 来到/ 北京/ 清华大学
全模式: 我/ 来到/ 北京/ 清华/ 清华大学/ 华大/ 大学
本次可视化展示运用精确模式
关于结巴的更多信息:
link
"wordclud"库简单介绍
在完成分词后,我们当然会希望出现次数多的词更清晰得显示,wordcloud 库帮我们完成形成词云的功能,再存储为图片文件即可。
import wordcloud
# 配置对象参数
w = wordcloud.WordCloud()
# 加载词云文本
w.generate("I love you!")
# 输出词云文件
w.to_file("词云.png")
结果:
关于wordcloud库更多信息:
link
完整代码及注释
from requests_html import HTMLSession
import jieba
from wordcloud import WordCloud
def get_news():#定义一个获取新闻标题的函数
ams_news_titles = []
session = HTMLSession()
r = session.get('https://news.baidu.com/')
title_baidu1 = r.html.find('#pane-news > div > ul > li.hdline0 > strong > a', first=True)
ams_news_titles.append(title_baidu1.text)
title_baidu2 = r.html.find('#pane-news > ul:nth-child(n) > li.bold-item > a')
for title in title_baidu2:
ams_news_titles.append(title.text)
return ams_news_titles
seg_list = jieba.cut(''.join(get_news()), cut_all=False)#结巴分词,精确模式
word_split = " ".join(seg_list)#转换成字符串
my_word = WordCloud(background_color='white',font_path = 'C:\Windows\Fonts\simhei.ttf',max_words = 100,width = 1600,height = 800)#设置可视化图形的背景,高度,宽度......
my_word = my_wordclub.generate(word_split)
my_word.to_file('可视化' + '.png')#存入文件