釘釘在線求饒?五星分期付款?爬取釘釘App Store真實評價數據並分析


最近釘釘火了,由於疫情影響,釘釘被教育部選爲給學生用來在線上網課的平臺,本覺得本身由於業務過硬獲得官方的承認,是2020上天選中的寵鵝,萬萬沒想到到因爲小學生不爽被佔用寒假時間上課,因而集體出征在各大應用商店給釘釘打低分⬇️python

因而就出現了前幾天的「釘釘十一億下載量,總體評分只有一星」,真是好慘一軟件。那麼就跟隨本文一塊兒經過爬取釘釘在App Store的評分,看看用戶的真實反應吧。正則表達式

2、數據爬取

咱們的目標就是從App Store官網拿下這些評論數據作分析⬇️json

原本覺得要寫個爬蟲在用正則表達式去提取,結果一搜發現有現成的App Store評論API⬇️bash

https://itunes.apple.com/rss/customerreviews/page=1/id=/sortby=mostrecent/json?l=en&&cc=cn

只要將釘釘的id添加進去就OK,這就很簡單了,連F12都不用⬇️app

因而咱們很輕鬆的就獲得了釘釘在App Store的評論APIecharts

https://itunes.apple.com/rss/customerreviews/page=1/id=930368978/sortby=mostrecent/json?l=en&&cc=cn

打開看看,OK就是這個⬇️,可是比較惋惜的是App Store並無提供評論時間,因此對咱們有用的數據就只有用戶評分、評論標題、評論內容。測試

注意到這僅僅是第一頁的評論,而經過測試發現最多能夠查看10頁的評論,因此寫一個簡單的循環把咱們須要的信息提取出來,具體代碼⬇️字體

import requests
import pandas as pd
from pandas import DataFrame
flag = [1,2,3,4,5,6,7,8,9,10]
urllist = []
for i in flag:
    url = f"https://itunes.apple.com/rss/customerreviews/page={i}/id=930368978/sortby=mostrecent/json?l=en&&cc=cn"
    urllist.append(url)
rating = [] #評分
title = [] #標題
content = [] #內容
for url in urllist:
    res = requests.get(url)
    data = res.json()['feed']['entry']
    for i in range(len(data)):
        rating.append(data[i]['im:rating']['label'])
        title.append(data[i]['title']['label'])
        content.append(data[i]['content']['label'])
data = {'打分':rating,
       '標題':title,
       '內容':content
       }
df = DataFrame(data)複製代碼

最終爬取的數據長這樣⬇️url

3、數據分析

咱們首先看下這500條評分的分值分佈spa



從圖中能夠看出一共500次評分,1分和5分佔了490次,其中打一分的250人,5分的240人,而2分、3分、4分的人數則分別爲一、三、6人。看來打分的各位還真是愛憎分明。

接着咱們再從title和content中提取與學生相關的文字並統計⬇️

看來不論是不是評論者是否是小學生,都喜歡在評論裏面聊小學生。

咱們再統計一下標題和內容中出現最多的一些關鍵詞。能夠用pandas裏面的.str.contains()方法⬇️

再可視化一下⬇️


能夠看到,給好評的人和給一星的人旗鼓至關,有罵釘釘吵着下架的,也有鼓勵釘釘喊着加油的。可是惟一值得關注的是,有很多人想分期消費

好了,最後咱們來製做下詞雲圖,上面的可視化主要利用pyecharts,具體在我以前文章中有詳細說明。而詞雲圖的製做選擇了python裏的wordcloud庫,具體使用方法就不細說,看代碼⬇️

from wordcloud import WordCloud
import matplotlib.pyplot as plt  #繪製圖像的模塊
import  jieba                    #jieba分詞

path_txt='content.txt'
f = open(path_txt,'r',encoding='UTF-8').read()

# 結巴分詞,生成字符串,wordcloud沒法直接生成正確的中文詞雲
cut_text = " ".join(jieba.cut(f))

wordcloud = WordCloud(
   #設置字體,否則會出現口字亂碼,文字的路徑是電腦的字體通常路徑,能夠換成別的
   font_path="msyh.ttc",
   #設置了背景,寬高
   background_color="white",width=2000,height=1880).generate(cut_text)

plt.imshow(wordcloud, interpolation="bilinear")
plt.axis("off")
plt.show()複製代碼

從標題生成的詞雲圖來看,依舊是褒貶摻半

下面是由內容生成的詞雲圖

4、結束語

以上就是本文的所有內容,筆者也是使用釘釘進行辦公。而對於釘釘這波啼笑皆非的熱搜,我想釘釘官方鬼畜已經給出了答案

====================================================================

更多好玩有趣的python歡迎關注個人公-衆-號:早起python

相關文章
相關標籤/搜索