查看原文
其他

“网友:我差点以为你要倒闭了!”鸿星尔克捐款5000w后被网友微博评论笑哭...

酷头酷头 印象Python 2022-08-01

文 | 酷头

来源:印象python「ID: python_logic」

嗨!大家好,我是酷头
欢迎来到学习python的宝藏基地~~~


长按下方二维码可以添加我为好友哦


相信大家都知道
前两天河南刚经历了一场千年一遇的暴雨
可以说是损失惨重
但令人感动的是
无论是普通网友、明星还是知名企业
都在在尽自己的一份力量给河南捐款/物资

而且你们猜怎么着
在我刷企业捐款名单时
发现了一个陌生又熟悉的名字


鸿 星 尔 克




作为一名90后
“鸿星尔克——to be NO.1”这句话
在童年时期曾经狠狠地刻在了我的DNA里
(时代的眼泪懂得都懂)

但随着成长过程中接触的牌子越来越多
鸿星尔克也逐渐被大家遗忘
(有一段时间甚至以为他破产了...dbq)


然鹅
就是这样一个朴实无华不营销的牌子
悄咪咪捐出了5000w
好家伙
做慈善也不是这么玩的呀!
这事情一出来可给网友们急坏了...


网友:把你们家最贵的鞋拿出来!
主播:笑死,最贵的300块



目标确定


所以我们今天就把270000+网友的评论使用爬虫下载下来,看看大家都说了些什么?




需求分析


我们要获取的数据如有微博评论下的
用户id、用户名称、用户座右铭、发帖时间和发帖内容
首先我们F12打开浏览器开发者模式:


目标url如下:

https://m.weibo.cn/comments/hotflow?id=4661454088968882&mid=4661454088968882&max_id_type=0


为防止被反爬,我们还需添加headers模拟浏览器发送请求



我们用浏览器打开链接,发现这是一个标准的json格式的数据集,
我们所要的数据都在这个json数据里面


所以第一步,先模拟浏览器获取这个json格式的数据集。



发送请求


请求代码如下:


    url = 'https://m.weibo.cn/comments/hotflow?id=4661454088968882&mid=4661454088968882&max_id_type=0'
    headers = {
        'cookie''SUB=_2A25NyTOqDeRhGeVG7lAZ9S_PwjiIHXVvMl3irDV6PUJbktB-LVDmkW1NT7e8qozwK1pqWVKX_PsKk5dhdCyPXwW1; SUBP=0033WrSXqPxfM725Ws9jqgMF55529P9D9WFGibRIp_iSfMUfmcr5kb295NHD95Q01h-E1h-pe0.XWs4DqcjLi--fi-2Xi-2Ni--fi-z7iKysi--Ri-8si-zXi--fi-88i-zce7tt; _T_WM=98961943286; MLOGIN=1; WEIBOCN_FROM=1110006030; XSRF-TOKEN=70a1e0; M_WEIBOCN_PARAMS=oid%3D4648381753067388%26luicode%3D20000061%26lfid%3D4648381753067388%26uicode%3D20000061%26fid%3D4648381753067388',
        'referer''https://m.weibo.cn/detail/4661454088968882',
        'user-agent''Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4573.0 Safari/537.36'
    }

    resp = requests.get(url, headers=headers).json()
    print(resp)


结果打印如下:






解析页面‍‍‍‍‍‍‍‍‍


上一步已经成功模拟浏览器获取到了数据。

接下来就是如何在其中提取出我们的目标数据


  for item in wb_info:
      user_id = item.get('user')['id']  # 用户id

      author = item['user']['screen_name']  # 作者名称

      auth_sign = item['user']['description']  # 作者座右铭

      time = str(item['created_at']).split(' ')[1:4]
      rls_time = '-'.join(time)  # 发帖时间

      text = ''.join(re.findall('[\u4e00-\u9fa5]', item['text']))  # 发帖内容

      print(user_id, author, auth_sign, rls_time, text)
      
      '''
      5457161951 白不桃 halo.我是小白 Jul-21-23:15:20 娘嘞感觉你都要倒闭了还捐了这么多
      2090450561 吴荣照 鸿星尔克实业董事长 简单 务实 进取 Jul-21-18:53:49 驰援灾区刻不容缓鸿星尔克心系灾区紧急捐赠万元物资河南加油中国加油
      5809427008 Bettermfy 梦想总是遥不可及 Jul-21-23:21:18 明星万直接冲热搜良心企业万评论一百多点赞才两千我真的有点意难平
      1733591242 小崔同学吖吖 平安喜乐,得偿所愿 Jul-21-23:16:17 怎么宣传下啊宝我都替你着急
      2362503764 吴怼怼 日理万机的摄影白痴 Jul-21-18:13:28 国民品牌牛福建多家企业捐款驰援河南
      2171593110 鸿星尔克官方微博 TO BE No.1 Jul-22-22:20:57 很多小伙伴问儿童产品尔克儿童尔克儿童看这里
      3197694947 萧羽希- 🍀 Jul-21-23:25:43 感觉你们官微都舍不得开微博会员却捐了和安踏一样的五千万真的很了不起
      3613082771 孙滢皓好皓皓 喜欢刘宇 孙滢皓 罗一舟 张杰  好感 白敬亭 磕左星佑你 烨斯 轻舟皓月! 雷缺德违法不正能量的一切 Jul-22-11:28:17 送了你三个月会员良心国货
      3269016353 写意_life 摄影/最近热衷广播剧,写剧评中 Jul-21-21:21:41 鸿星尔克的鞋子真的好看又便宜做实体的企业能捐五千万真的很难得赞赞这得卖多少鞋呀
      5466647896 秋思思思思思思思思 事不關己,高高掛起. Jul-22-01:09:19 宝你好糊我都替你着急啊买点营销吧一点点就好我怕你倒闭允悲
      3516420945 豆奶拿铁去冰喏 2021必定去趟重庆/东宫女孩日常碎碎念/多喜乐长安宁 Jul-21-23:10:31 刚刚在新浪官博下面看到说贵公司捐了马上过来看看天哪你们捐的也太多了吧真的尽力就好傻眼傻眼傻眼
      6401067300 韩艺琨 一宝 Jul-22-14:46:50 看过这个品牌老总吴荣照的故事当初他创业工厂生产的鞋一夜之间全被洪水泡了他自己淋过雨所以想给别人撑把伞泪
      7468947078 小乖是自然卷呀 事在人为!Jul-22-13:37:57 知道吗
      5062791347 我是Maxmeng 眼睛里有光的女孩子👧 Jul-21-23:30:53 从别的热门微博下面得知鸿星尔克捐款万低调的我都替你着急
      5663079280 kennnnyibkf 祈求天地放过一双恋人 Jul-21-20:48:13 哇哇哇太棒了怎么不给自己宣传一下知道你们老实怎么说也营销一下呀
      7517588037 孟方醒_ 未满18🚫  Q1558967897 Jul-21-23:16:43 鸿星尔克这种不算特别火的牌子捐万真的很多了
      6287369555 张翼德o  Jul-21-23:55:46 大哥你捐恁多我都不知道说啥了
      6028193746 莫柏舟794 有些经历像风 Jul-21-23:06:24 不上热搜都对不起你泪
      7426550888 夜晚揽你入怀 管 好 你 自 己 Jul-22-07:53:23 算我踏马求你的买点热搜吧我真的给您跪了隔壁一线明星一年挣的比你多的才五十万你挣到钱了吗泪泪
      7211561788 zzhcgq 🍎🍏 Jul-22-00:26:49 趁着号天活动多买两双鞋本来打算支持另一家国产牌子的果断换你家的有社会责任心的国产品牌要越来越好赚更多钱赞赞赞  
      '''


数据成功获取!


因为我们要获取的数据不止一页,所以咱们来接着分析翻页。就从每一页的url开始。

https://m.weibo.cn/comments/hotflow?id=4661454088968882&mid=4661454088968882&max_id_type=0

https://m.weibo.cn/comments/hotflow?id=4661454088968882&mid=4661454088968882&max_id=4973543178586492&max_id_type=0

https://m.weibo.cn/comments/hotflow?id=4661454088968882&mid=4661454088968882&max_id=789901434028535&max_id_type=0

https://m.weibo.cn/comments/hotflow?id=4661454088968882&mid=4661454088968882&max_id=283713770568363&max_id_type=0

从第二页开始,每个连接的后面都多了一个叫做max_id的参数。
并且这个max_id是跟随页数随机变化的。

那现在问题就变成了如何获取max_id


通过第一页的链接获取到了第二页的max_id,
然后通过第二页的链接获取到第三页max_id
以此类推,获取到全部数据......



之后接着把内容使用openpyxl保存到Excel文件中,如下图所示。


  ws = op.Workbook()
  wb = ws.create_sheet(index=0)

  wb.cell(row=1, column=1, value='用户id')
  wb.cell(row=1, column=2, value='作者名称')
  wb.cell(row=1, column=3, value='作者座右铭')
  wb.cell(row=1, column=4, value='发帖时间')
  wb.cell(row=1, column=5, value='发帖内容')

  count = 2
  wb.cell(row=count, column=1, value=user_id)
  wb.cell(row=count, column=2, value=author)
  wb.cell(row=count, column=3, value=auth_sign)
  wb.cell(row=count, column=4, value=rls_time)
  wb.cell(row=count, column=5, value=text)
    
  ws.save('鸿星尔克.xlsx')


先来测试50页数据,总共获取到800+测试数据





词云展示

‍‍‍‍‍‍‍‍‍


  rcv_data = pd.read_excel('./鸿星尔克.xlsx')
  exist_col = rcv_data.dropna()  # 删除空行
  c_title = exist_col['发帖内容'].tolist()
  # 观影评论词云图
  wordlist = jieba.cut(''.join(c_title))
  result = ' '.join(wordlist)
  pic = 'img1.jpg'
  gen_stylecloud(text=result,
                  icon_name='fas fa-comment-dots',
                  font_path='msyh.ttc',
                  background_color='white',
                  output_name=pic,
                  custom_stopwords=['你''我''的''了''在''吧''相信''是''也''都''不''吗''就''我们''还''大家''你们''就是''以后']
                   )
  print('绘图成功!')



妥妥的,支持就完事了!


“因为自己淋过雨,才想为别人撑伞”
真的看的人泪目了...
别的不多说
你!鸿星尔克!发财!!


当然
除了鸿星尔克以外
还有很多明明自己赚得也不多
却默默花大手笔为河南捐款的爱国企业和众多爱国老铁
真的太感动了....




1. 本文详细介绍了python爬虫获取微博短评并保存excel进行词云分析。


有兴趣的读者可以尝试自己动手练习一下。


2. 本文仅供读者学习使用,不做其他用途!


3. 右下角点亮[在看]

即可找我领取本文的全部代码呦!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存