热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

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

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

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

06月03号,英雄联盟史上永远的神--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('', ' ', comment)comment = re.sub('', ' ', 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,搜索这个模块,注册一下就可以拿到,很简单。

 

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

 

 

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


推荐阅读
  • 本文探讨了为何相同的HTTP请求在两台不同操作系统(Windows与Ubuntu)的机器上会分别返回200 OK和429 Too Many Requests的状态码。我们将分析代码、环境差异及可能的影响因素。 ... [详细]
  • SpringMVC RestTemplate的几种请求调用(转)
    SpringMVCRestTemplate的几种请求调用(转),Go语言社区,Golang程序员人脉社 ... [详细]
  • Python + Pytest 接口自动化测试中 Token 关联登录的实现方法
    本文将深入探讨 Python 和 Pytest 在接口自动化测试中如何实现 Token 关联登录,内容详尽、逻辑清晰,旨在帮助读者掌握这一关键技能。 ... [详细]
  • 本文详细介绍如何使用 Python 集成微信支付的三种主要方式:Native 支付、APP 支付和 JSAPI 支付。每种方式适用于不同的应用场景,如 PC 网站、移动端应用和公众号内支付等。 ... [详细]
  • 远程过程调用(RPC)是一种允许客户端通过网络请求服务器执行特定功能的技术。它简化了分布式系统的交互,使开发者可以像调用本地函数一样调用远程服务,并获得返回结果。本文将深入探讨RPC的工作原理、发展历程及其在现代技术中的应用。 ... [详细]
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 本文介绍如何使用 Angular 6 的 HttpClient 模块来获取 HTTP 响应头,包括代码示例和常见问题的解决方案。 ... [详细]
  • 本文介绍了如何使用JavaScript的Fetch API与Express服务器进行交互,涵盖了GET、POST、PUT和DELETE请求的实现,并展示了如何处理JSON响应。 ... [详细]
  • 我有一个SpringRestController,它处理API调用的版本1。继承在SpringRestControllerpackagerest.v1;RestCon ... [详细]
  • 深入解析SpringMVC核心组件:DispatcherServlet的工作原理
    本文详细探讨了SpringMVC的核心组件——DispatcherServlet的运作机制,旨在帮助有一定Java和Spring基础的开发人员理解HTTP请求是如何被映射到Controller并执行的。文章将解答以下问题:1. HTTP请求如何映射到Controller;2. Controller是如何被执行的。 ... [详细]
  • 深入解析ESFramework中的AgileTcp组件
    本文详细介绍了ESFramework框架中AgileTcp组件的设计与实现。AgileTcp是ESFramework提供的ITcp接口的高效实现,旨在优化TCP通信的性能和结构清晰度。 ... [详细]
  • ListView简单使用
    先上效果:主要实现了Listview的绑定和点击事件。项目资源结构如下:先创建一个动物类,用来装载数据:Animal类如下:packagecom.example.simplelis ... [详细]
  • 软件工程课堂测试2
    要做一个简单的保存网页界面,首先用jsp写出保存界面,本次界面比较简单,首先是三个提示语,后面是三个输入框,然 ... [详细]
  • 探讨在使用 Fast-Android-Networking 库时遇到的 addStringBody 方法无法正常工作的问题及其解决方案。 ... [详细]
  • Java项目分层架构设计与实践
    本文探讨了Java项目中应用分层的最佳实践,不仅介绍了常见的三层架构(Controller、Service、DAO),还深入分析了各层的职责划分及优化建议。通过合理的分层设计,可以提高代码的可维护性、扩展性和团队协作效率。 ... [详细]
author-avatar
手机用户2502856553
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有