首页
学习
活动
专区
工具
TVP
发布

玩转Python,用Flask做一个微博画像采集小工具

作者: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本优秀程序员必读的书

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190131B0QV8T00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券