py3生成词云

本文使用py3中flask框架搭建了一个在线评论生成词云的网站。

  • 面向人群:拥有python爬虫基础基础,不会使用flask框架也可以良好食用。

首先演示一下效果:

输入复仇者联盟

就可以得到由这部电影的豆瓣评论生成的词云。

看完效果,我们讲一下实现的流程。不贴代码。最后会放上代码的github链接。在这里主要讲一下实现步骤。

整体布局

  • 服务器端

1.获得代理IP

我们知道通过爬虫获得一个网站的信息,如果被网站发现在极短时间内有同一IP发送多次请求。那么此网站就会屏蔽此IP。为此,我们需要大量的代理IP。我们在这个网址上获得代理IP:

通过爬虫获得IP

但是这个网址上的IP地址并不是所有的都可以用,因此我们需要进行检验,通过访问如下的网址,检验此IP是否可用。

于是我们需要写个名为myProxies的脚本,来获得代理IP。

2.获得豆瓣电影资源

获得电影名字之后,我们就要访问该网址,例如,我们想查看银魂这部电影,那么此时q=银魂。

获得电影资源

明显可以看出这是一个json类型的数据,传递到服务器端的时候,我们暂时只获取第一个电影的值。这里每个电影都有自己的id。例如第一个电影的id为26816086。我们需要用这个id来访问另外的网址。

这样我们就获得了评论,start=20是指低20条评论,limit=20是指显示20。我们只需每次改变start=n中n的值即可(n=0,20,40,.....)。

银魂电影大家的评论

然后我们解析网页,将每个人的评论都保存在字符串中,使用jieba库分词,将结果传递给wordcloud库,就可以生成又评论组成的词云。至此服务器端工作就已经全部完成。如果没有flask的基础,直接下载代码即可。其中Spider1和myProxies均可以单独运行。分别是生成词云以及获得代理IP。

  • 客户端

使用flask框架,服务器端如下:

结构如下

主要流程就是客户端使用AJAX传递电影名,然后服务器接收,处理之获得词云,然后通过AJAX将图片地址传递给客户端。static/images下就是生成的图片。templatesPicture是一个模板图片,及生成词云的形状。具体实现见代码。

代码链接:

heucoder/Moive_wordCloud​github.com

知乎:

https://www.zhihu.com/people/233333-4/posts

有问题欢迎来撩

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值