作者:Walker 个人博客:
http://101python.cn/
Flask是Django之外用Python实现的另一优秀Web框架。相对于功能全面的Django,Flask以自由、灵活著称。在开发一些小应用的时候,使用Django会有“杀鸡用牛刀”的赶脚,而使用Flask就非常合适。本文将使用Flask开发一个微博用户画像的生成器,最后效果如下:
开发步骤如下:
抓取微博用户数据;
分析数据,生成用户画像;
网站实现,美化界面。
一、微博抓取
这里使用移动端的微博(m.weibo.cn),以为例。本教程使用chrome浏览器进行调试。
在“发现”中搜索“古力娜扎”,点击进入她的主页;
开始分析请求报文, 右击打开调试窗口,选择调试窗口的"网络(network)"标签;
选择"Preserve Log",刷新页面;
分析各条请求过程可以发现博文的数据是从https://m.weibo.cn/api/container/getIndex?XXX 类似的地址中得到的。其主要参数为type(固定值)、value(博主ID)、containerid(标识,请求中返回)、page(页码)
下面开始实现爬取博文的代码。
In [33]:
至此,用户的数据已准备就绪,接下来开始生成用户画像。
二、生成用户画像
1.提取关键词
这里从博文列表中提取出关键字,分析出博主的发表的热词
2.生成词云图
三、实现Flask应用
开发Flask不像Django那么复杂,小应用几个文件就可以完成。步骤如下:
1. 安装
使用pip安装flask,命令如下:
2.实现应用逻辑
简单来说,一个Flask应用就是一个Flask类,由route函数控制它的url请求。代码实现如下:
以上就是全部的代码,简单吧?当然,单文件结构只适合小的应用,随着功能和代码量的增加,还是需要把代码分离中不同的文件结构中以便开发和维护。最后,还差一个页面的模版文件。
3.模版开发
模版需要有一个输入的表单和用户信息展示,基于Jinja2模版引擎。熟悉Django模版的应该可以很快上手,流程也和Django类型,在项目根目录下建一个名为templates的文件夹并新建一个名为index.html的文件,代码如下:
这样,应用实现完毕,项目结构如下:
进入项目文件夹,启动项目:
然后浏览器打开http://127.0.0.1:5000 地址就可以看到本教程最上面的效果。
以上只是一个初步实现,还有很多需要完善的地方。比如,如果发布的博文比较多时,获取时间比较长,可以考虑加个缓存,存储已获取的用户,避免重复请求,前端也可以加个loading效果。本教程展示的只是单用户,后面也可以批量获取用户信息,生成一个群体的用户画像。
往期热文:
菜鸟学Python年度抽奖,连续抽奖7天9本优秀程序员必读的书
领取专属 10元无门槛券
私享最新 技术干货