专栏名称: 爬虫俱乐部
Stata技术控,编程技术咨询,数据讨论与分享,编程和实证培训。
目录
相关文章推荐
必经之路  ·  当你一无所有时,请记得还有它 ·  昨天  
超级数学建模  ·  热搜警告!年轻人熬夜集体干眼症暴增300%! ·  2 天前  
超级数学建模  ·  为什么高段位的人,都喜欢沉香? ·  2 天前  
51好读  ›  专栏  ›  爬虫俱乐部

Python 爬取豆瓣电影评论并生成词云图(二)

爬虫俱乐部  · 公众号  ·  · 2018-06-05 10:11

正文

请到「今天看啥」查看全文


Movie_id也进行拼接是为了以后可以只需更改电影id就可以获取不同电影的评论。

将每次循环返回的列表再相加,形成一个大列表 data

最后 return join 函数将内容用空分隔。就相当于最后返回的是一篇文章,所有评论都在里面,便于后续的分词。

def parsepage (movie_id , page_num):

data = []
for i in range (page_num):
url =
"https://movie.douban.com/subject/" + str (movie_id) + "/comments?start=" + str ( 20 * i) + "&limit=20"
data +=onepage(url)
print ( "parsing page %d" % (i+ 1 ))# 提示信息,显示当前正在解析第几页
time.sleep(
6 )# 每解析一页,就暂停 6 秒钟。防止给服务器造成不必要的资源浪费
return " " .join(data)

如图,以下就是返回的结果。


进行分词

接下来,通过jieba中文分词对列表的评论进行分词。

jieba 是基于Python的中文分词工具,安装使用非常方便,直接pip即可:

执行命令安装: pip install jieba

这里是jieba分词的官方网站:

https://github.com/fxsjy/jieba

安装完毕我们导入:

通过上面返回的 data ,我们将data直接传入 jieba lcut 方法。然后就返回了分词结果。

import jieba

all_comments =jieba.lcut(data)

print (all_comments)

我们可以将其打印出来看一下:

可以发现jieba分词已经将评论内容分解为一个一个的单字或词语,并且是一个列表。

因为生成词云图需要的是每个词语之间用空格分隔,所以我们还是用 join 方法,将上面返回的分词结果传入join函数,将其用空格分隔,并存入 words 列表。

words = []
words = " ".join(all_comments)

至此,words就是我们需要生成词云图的文字内容。

现在,我们已经将评论内容的准备工作完成。

生成词云图

激动人心的时刻终于到来!

使用 Wordcloud 库将其生成漂亮的词云图。

同样,使用命令安装: pip install wordcloud

这里是wordcloud的主页:

https://github.com/amueller/word_cloud

可以在这里对wordcloud有个大致了解。

注意:安装期间可能会出现错误:需要VC ++ 库等,此时不要着急。这里给出解决方案:

https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud

打开上面的网址,会跳转到如下界面:根据你的版本进行下载。







请到「今天看啥」查看全文