看看你爱的他今天是什么‘颜色‘ -- Python爬取微博评论制作专属偶像词云

简介:快来拿出你珍藏的pick star,用大家对他的爱重塑一个他吧。通过爬取微博评论,制作你的偶像图片词云,天天都是不重样的哦!

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:101677771

06月03号,英雄联盟史上永远的神--UZI退役,一代传奇落下帷幕。

 

作为联盟史上颇有争议的ADC选手,"狗黑"和"狗吹"无时无刻不展开着激烈的键盘搏杀。那么,在3号UZI的退役微博下,是哪一种声音更多呢?下面让我们一起通过Python爬取微博评论,科学的分析一下吧!

 

  • 准备工作

首先,我们找到UZI的退役微博评论界面(泪目..):

 

此时,利用谷歌浏览器的抓包工具,即点击F12,清空所有连接后,F5刷新,看到评论为下面的链接:

 

记住右边标注红框的部分,一会需要用到它来爬取评论。

同时点击左边第二行hotflow?id...那个network,找到Cookie值,将他复制下来,备用。

 

然后,通过观察翻页规律,发现第二页比首页评论多了一个参数max_id,而这个参数可以在首页的页面返回值中拿到。故想获得n页的链接,只需要解析n-1页就可以了。

 

  • 爬微博评论阶段

    首先构造请求头,通过requests库得到页面响应。

headers = {    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36',    'Accept': 'application/json, text/plain, */*', 'MWeibo-Pwa': '1',    'Referer': 'https://m.weibo.cn/detail/%s' % mid, 'X-Requested-With': 'XMLHttpRequest',    'Cookie': '复制的Cookie值'    }url = args.urlif num > 1:    url = 'https://m.weibo.cn/comments/hotflow?id={}&mid={}&max_id={}&max_id_type=0'.format(mid, mid, max_id)response = requests.get(url, headers=headers

接下来对返回值进行解析:

 

comment = item['text']comment = emoji.demojize(comment)comment = re.sub('<span.*</span>', ' ', comment)comment = re.sub('<a.*>', ' ', comment)name = item['user']['screen_name']created_at = itemi['created_at']

通过循环获取每条评论的用户名、评论时间和评论内容,并对评论内容做去表情和图片链接的处理,最后保存为csv文件:

df = pd.DataFrame({'用户名': name_list, '评论': comment_list, '时间': created_at_list})df = df.drop_duplicates()df.to_csv('comments.csv', index=False)

结果如图(二次泪目中...):

这样一个简单的爬虫就处理完成了,食材准备好了,主食就应该开火了,起锅烧油!

 

偶像词云制作

首先,选择你最爱的偶像的照片,这里选择狂小狗童鞋:

 

 

然后进行抠图、配上白色背景(如果不进行这一步,最后制作的词云可能会因为色差不明显导致有噪音):

 

rmbg = RemoveBg("你的api", "error.log")rmbg.remove_background_from_img_file(path)
img = cv2.imread(path, -1) img_copy = img.copy() img_shape = img_copy.shape width = img_shape[0] height = img_shape[1] for yh in range(height): for xw in range(width): color_d = img_copy[xw, yh] if color_d[3] == 0: img_copy[xw, yh] = [255, 255, 255, 255]

上述代码需要用到removebg模块的api,搜索这个模块,注册一下就可以拿到,很简单。

 

经过这两步处理后,就可以进行词云的制作了。

wc = WordCloud(font_path='simkai.ttf', background_color='white', mask=img)wc.generate_from_frequencies(words)wc.to_file(os.path.join(savepath, title+'.png'))

效果如下图:

 

可见,人们对于简自豪UZI的退役还是怀念与祝福占主流的,一员老将的离去,标志着一部分人青春的结束,但是未来的旅程也会同样精彩的!

 

 

不只是UZI,你喜欢的偶像是谁呢?准备一张他的美照,输入启动命令'python crawling.py --url 评论链接 --image 美照地址',就可以进行词云自动生成了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值