王力宏的瓜很大!我用Python爬取了微博评论区,发现更精彩

共 6900字,需浏览 14分钟

 ·

2021-12-25 22:47


↑ 关注 + 星标 ,每天学Python新技能

后台回复【大礼包】送你Python自学大礼包


大家好,我是龙哥!

12月15日,知名艺人王力宏官宣已提出离婚申请,8年婚姻生活划上句号
12月17日晚上23点,王力宏官宣离婚后的第二天,前妻李靓蕾发万字长文揭开离婚内幕,信息量之大,剧情之狗血,令人咋舌。
李的万字长文总结一下,就是王力宏存在召妓、出轨、约炮、冷暴力、转移财产、受妈妈控制、仅仅把李当生育机器、缺席孩子成长、用公关粉饰太平等斑斑劣迹。

没等吃瓜群众缓过来,2天之后,事情出现了意想不到的进展。

12月17日晚,前妻李靚蕾发文控诉王力宏。


文章很长,总结李靚蕾对王力宏的主要控诉如下:

1.嫁给王力宏后一直被催生,结婚大部分时间不是在备孕,就是怀孕。
2.婚内出轨,与很多前任及其他女人保持着性关系;
3.家庭冷暴力;
4.婚前签订财产协议,婚后转移财产;
5.召妓;

如此瓜文,怎么能放过评论区呢 ... 于是我准备用 Python 爬取评论区10000+条数据,那些年爱着的


网页分析


我们F12打开浏览器开发者模式如下:

页面上展示的信息我们都可以在右侧对应的真实链接中反映出来。



并且我们可以看到这是一个GET请求,我们可以在请求网站时加上

headers防止被网站反爬而不能获取到数据



发送请求


我们要获取的数据很简单,用户id、用户名称、评论时间、点赞人数和评论内容即可。

其他数据可以根据需求自行获取

如上图所示,我们要获取的数据是存在于一个叫做data的json文件中

url = 'https://m.weibo.cn/comments/hotflow?id=4715546983534277&mid=4715546983534277&max_id_type=0'
print('当前url是:', url)

  headers = {
      'cookie''WEIBOCN_FROM=1110006030; SUB=_2A25MZ_SXDeRhGeVG7lAZ9S_PwjiIHXVvq5zfrDV6PUJbkdCOLUOtkW1NT7e8qp27GOSnSoETtSb_elCC-bWgVj4i; MLOGIN=1; _T_WM=38762224%2594%25E7%259B%259F%25E6%2589%258B%25E6%25B8%25B8%25E8%2583%25BD%25E7%25A2%25BE%25E5%258E%258B%25E7%258E%258B%25E8%2580%2585%25E8%258D%25A3%25E8%2580%2580%25E5%2590%2597%2523%26uicode%3D20000061%26fid%3D4690050909209999',
      'referer':'https://m.weibo.83534277',
      'user-agent''Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKi96.0.4651.0 Safari/537.36'
    }

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

接下来我们再获取data中的提取具体数据如下:

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']))  # 发帖内容

'''
6252999249 可爱fanChunChun 独立自行 Dec-18-00:13:25 被降热搜了资本的力量就是牛逼哈
2013749944 你想的那些东 2015 很高兴认识你们 Dec-18-00:26:08 广电总局立刻封杀王力宏下架其所有音乐与电影
6739242229 天空记录器 普通人,就爱指指点点,你杠我就是我对,懂?Dec-18-00:19:34 重点不是这个一直以来有权有势的人操弄媒体媒体操弄大众导致社会价值观的偏差与论思维被控制虽然这个产业很大我衷心的希望未来有权有势的人能被禁止透过营销来控制与论导向和维护自己的人设让公众人物能够以真实的面貌呈现在大众面前也让事实能够被看见
6306576835 山支大队真棒 美女都喜欢 Dec-18-00:14:56 玛德签了不平等婚前合约的情况下生了三个孩子女孩子一定要爱自己啊
3030355620 放开我我要给贺银成生猴子 随便逛逛 Dec-18-00:12:49 好像不仅说了出轨还有召吧
7644844440 小悦今年上岸了吗 非追星人 Dec-18-00:17:38 让高学历老婆一胎胎的生出轨选择的却都是漂亮的小女生很难不让人想到是找高学历孕母从岁就被惦记的高级孕母但凡她没有考上哥伦比亚大学她都会从名单里踢出去吧
5656318857 MISS_Love_1314  Dec-18-00:18:08 所以娃哈哈换掉王力宏是有预感还是
5671431234 阔爱到冒泡 早睡早起身体好 Dec-18-00:22:38 作为女生大家能不能让她上热搜
6233343954 镜面cyndi 脑子里好多东西没地方说 Dec-18-00:18:23 垃圾男在降热搜了吐
6346254326 xxxx_zzz_ Zhang·F·Q Dec-18-00:21:20 从热四降到了果然是李靓蕾文中写的有权有势的人会操控舆论导向和维护自己的人设看你怎么公关吧摊手
7407079288 我亦灿灿  Dec-18-00:19:06 娃哈哈这波我在第五层
5262173636 粥南家的吃饭小能手 好好生活 变得更好 Dec-18-00:19:33 图片评论
7404278667 小宇和胖胖阿毛 阿毛是个大胖可爱金毛~画不动图的建筑转行规划狗,无逻辑话痨。Dec-18-00:19:56 这热搜度撤的太假了
5637990265 溜溜达达的山东小大爷 畅饮泉中水,荡舟大明湖,土生土长的泉城济南土人,溜溜达达的山东中年小老头子(-ι_- ) Dec-18-00:14:45 花田里犯了错挖鼻草垛子里也
6572247262 Piertotum-Locomotor 老港剧人 Dec-18-00:14:03 王力宏说自己单纯汗
5268129530 棠花落云 四级必过 Dec-18-00:33:51 王力宏今年四六级通过率低你负主要责任
7578619018 重生之钮祜禄肠 老公奴 Dec-18-00:17:19 别压热搜了怒怒怒怒怒
'''




多页获取


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

https://m.weibo.cn/comments/hotflow?id=4715546983534277&mid=4715546983534277&max_id_type=0
https://m.weibo.cn/comments/hotflow?id=4715546983534277&mid=4715546983534277&max_id=388720425209630&max_id_type=0
https://m.weibo.cn/comments/hotflow?id=4715546983534277&mid=4715546983534277&max_id=179538338095825&max_id_type=0
https://m.weibo.cn/comments/hotflow?id=4715546983534277&mid=4715546983534277&max_id=149439207266543&max_id_type=0


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

通过第一页的链接获取到了第二页的max_id,
然后通过第二页的链接获取到第三页max_id
以此类推,获取到全部数据....
    for page in range(2100 + 1):
        print(f'----------正在打印第{page}页数据----------')
        if page > 16:
            max_id_type = 1
        else:
            max_id_type = 0
        url = f'https://m.weibo.cn/comments/hotflow?id=4715546983534277&mid=4715546983534277&max_id={max_id}&max_id_type={max_id_type}'




数据存储


我们使用openpyxl将爬取到的数据保存至Excel文件中,方便我们后续对数据进行处理和可视化操作。

总共获取到100页数据如下:





数据清洗


我们使用pandas来清理数据,删除重复记录和有缺失值的行,随机展示五条数据如下:

pd.set_option('display.max_columns'None)   # 显示完整的列
pd.set_option('display.max_rows'None)  # 显示完整的行
pd.set_option('display.expand_frame_repr'False)  # 设置不折叠数据

# 读取数据
rcv_data = pd.read_excel('./王力宏.xlsx')

# 删除重复记录
rcv_data = rcv_data.drop_duplicates()
# 删除缺失值
rcv_data = rcv_data.dropna()

# 抽样展示5条数据
print(rcv_data.sample(5))

'''            用户id      作者名称                                              作者座右铭             发帖时间                                               发帖内容
417   2436212781    奇艺1107                               任何为人称道的美丽,不及第一次遇见你。。  Dec-18-11:47:47                                 太恶劣了,想玩别结婚啊,骗婚怎么回事
1235 7197281512     ww吴哼哼                                        日常为吴宇恒打call Dec-18-09:01:40  离谱!这种新闻越来越多,真害怕有一天当丈夫对于出轨这个事实会对妻子坦然大方地说“我只是犯了天...
1006  7411126696  火狐狸60292  Poverty and human folly magnify natural disasters  Dec-18-09:18:33                                           又一个艺人社崩塌
1282 6067434117        竹苜                                            喜欢再来烦我!  Dec-18-08:58:10                                卧槽,这特么什么人。。。渣渣渣!服了。
1169  1882120530   最闪亮de謃謃                                            大度从容看世界  Dec-18-09:07:24                                             一切毁于素人'''


词频展示


我们使用pandas分析评论数据并提取文章前十大词汇

并使用气泡图和树状图展示如下:

# 词频设置
all_words = [word for word in result.split(' 'if len(word) > 1 and word not in stop_words]
wordcount = Counter(all_words).most_common(10)

x1_data, y1_data = list(zip(*wordcount))
  
'''
('王力宏', '封杀', '娱乐圈', '不是', '什么', '没有', '资本', '出轨', '希望', '媒体')
(107, 54, 47, 42, 42, 40, 38, 38, 30, 29)
'''


气泡图



饼图


词云展示


最后我们使用wordcloud来切割分词,使用stylecloud来展示多样形式的词云图如下:


# 获取列内容
c_title = rcv_data['发帖内容'].tolist()
# 观影评论词云图
wordlist = jieba.cut(''.join(c_title))
result = ' '.join(wordlist)

# 设置停用词
stop_words = ['都''我''了''的''是''他''你''有''啊''就''吧''不''人''还''这''事''也''没''吗',
              '知道''男人''这么''就是''一个''好''说''太''要''给''对''很''和''又''在''一直''自己''真的''这个']

def visual_ciyun1():
    mask = imread('wlh.jpg')
    wordcloud = WordCloud(font_path='msyh.ttc', mask = mask, stopwords=stop_words, background_color='white').generate(result)
    wordcloud.to_file('pic.jpg')
    print('词云图1绘制成功!')


点赞最多


max_stars = rcv_data[rcv_data['点赞人数'] == rcv_data['点赞人数'].max()]

'''
ic| max_stars:          用户id           作者名称 作者座右铭             发帖时间   点赞人数             发帖内容
               0  6252999249  可爱fanChunChun  独立自行  Dec-18-00:13:25  73195  被降热搜了资本的力量就是牛逼哈
'''





热搜评论点赞排行榜


我们按照评论点赞将评论排序如下:




情感分析


我们以点赞最多评论为例分析观众对wlh事件的一些看法进行简单分析
我们是使用的库是SnowNLP

SnowNLP是一个基于Python的情感分析工具库,可以进行中文分词、词性标注、情感分析、文本分类、文本关键词提取等。

我们将其分为积极、消极和中等来看看大众态度
all_words = [word for word in result.split(' 'if len(word) > 1 and word not in stop_words]
    positibe = negtive = middle = 0
    for i in all_words:
        pingfen = SnowNLP(i)
        if pingfen.sentiments > 0.7:
            positibe += 1
        elif pingfen.sentiments < 0.3:
            negtive += 1
        else:
            middle += 1
    print(positibe, negtive, middle)

'''
1471 568 4241
'''

从可视化结果我们可以看出大多吃瓜群众还是不买帐的


最后想说的是

出轨是一种本能,但忠诚是一种选择。


我们行走在世间,总会遇到更好看的人、更优秀的人、更年轻的人,可是这个世界上有太多人了,我们怎么能保证这个一定是最后一个?


遇到的新人或许更好,但好的有限。为了这一点点新鲜感,就要去换一个伴侣,就要背信弃义去做各种龌龊的事情,这样和禽兽又有什么区别?


人如果一味放纵自己的欲望,不仅仅是身败名裂、失去婚姻和家庭,还会走向自我灭亡的道路。


推荐阅读

  1. 阿里疯传!Python+商业数据分析+数据可视化教程(建议收藏)

  2. 整理了 65 个 Matplotlib 案例,拿来即用!

  3. 王力宏的瓜到底有多大?我用Python分析的明明白白



浏览 52
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报