python爬虫抢演唱会_Python爬虫告诉你:为什么杨超越不会唱不会跳也能躺赢出道!...

这个夏天,除了世界杯,还有101

上周六,创造101的小姐姐们终于成团,11个被粉丝选中的火箭少女即将一飞冲天。

0c87e04368213f9c1f8fe3b5b27eae2d.png

打破土偶多项数据记录的土创终于出人头地,成为2018年夏天最受人关注的选秀。选手中成功出圈的王菊,成功一个努力的炮灰,未能成功出道;而另一位备受争议的“村花”杨超越,点赞数高居第三,顺利成团。

254556515ff48d11f72caa7d962cac82.png

从第一期开始,“村花”几乎被全网diss,微博随便一搜关键词“diss”自动联想全是杨超越的名字。

855f7a1c4bb9b422ed49dfc63d1b4ab5.png

王思聪更是实名diss:Ycy的出道是侮辱了其他十个人。侮辱了她们的努力,她们的汗水,她们的业务能力。

bcb35e2511a164fcd36118305ab99c31.png

某的公众号上公开表示杨超越现象“让努力的女孩子看起来像个笑话。”

1c6ee61bc7062fa1cecb7c4223c29ca5.png

那么这个在舞台上表演各种“车祸现场”的妹子,究竟用什么打动了粉丝从而高位出道呢?某论坛有网友用Python爬取了杨超越的微博数据,进行词云分析,终于发现了真正原因!

一、准备工具

作词云分析主要用到两个工具:

jieba,俗称结巴,中文分词工具;

wordcloud,词云生成工具。

可以先用pip安装这两个库。

二、分析

首先打开移动端 https://m.weibo.cn/searchs,在里边找到小姐姐的微博主页,分析浏览器的请求。

2b2b9d9b763779acbfef05b2758d919d.png

新浪微博应用的是Ajax渲染方式,因此若要准确分析数据需要提取出Ajax请求,Ajax的请求类型为XHR,如图getIndex前缀的都是Ajax请求,查看其Request URL, 观察到获取微博数据的的接口是 https://m.weibo.cn/api/container/getIndex。仔细观察这个URL参数:

82422f26fe6ad65c6917137cf9eb9f79.png

发现其中有一些固定参数在不同请求中是恒定不变的,同时也有一些加密参数,page是翻页参数。在response选项卡中查看这个借口返回的数据,发现是JSON字典类型,在JSON.cn中进行在线转化:

23035bfb4639e97091bdf27675633e82.png

f236c04abf628342e70645e1b31946c5.png

total是微博总条数,page是页数,每10条微博为一页,每一条微博都被封装在cards数组中,具体内容在text标签里。

三、构造请求头

分析完网页,我们用requests模拟浏览器来获取数据,因为不需要登陆就可以查看小姐姐的微博,因此这里不需要准备cookies。应用以上分析得到的参数构建请求头:

23852c1b18e13999146081c26cfa9702.png

四、构造简单爬虫

通过返回的数据能查询到总微博条数 total,爬取数据直接利用 requests 提供的方法把 json 数据转换成 Python 字典对象,从中提取出所有的 text 字段的值并放到 blogs 列表中,提取文本之前进行简单过滤,去掉无用信息。顺便把数据写入文件,方便下次转换时不再重复爬取。

同时,在这里准备一个由常见连接词组成的“结巴关键语录”,里边存放“你、我、他、虽然、但是”等连接词,用这个语录对微博语句进行断句。

同时,准备好词云背景图,这个背景图除了图案背景最好是白色。

通过hsl函数来决定生成词云的颜色。

0738e6903985c2a8590dee9966b11d68.png

五、效果图

d8c3b69930f2f445f32aa8d1146cccf3.png

六、原始代码

c212743cc405bd7e3d20425865af0272.png

f00dc14db5c5602269ed5d80716ff6e1.png

0b063e8685efd25bc31064f589addf01.png

这个结果也是如大家所料,”好看“成为提及较多的关键词,“村花”果然依靠自己出众的颜值,收获大批颜粉!

不过话说回来,之前也有小哥哥用Python爬了菊姐的微博评论,通过词云图得出陶渊明们的用户画像。所以,大家在收看综艺愉悦身心的同时,可以实战演练一番,也是颇有趣味的哦~

e36e0f43d9ebf43ab3abcc643b81b484.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值