知乎人均985?Python爬50W數據,BI做出可視化後,我有了答案

2021-01-07 數據分析不是個事兒

一次完整的python數據分析流程是怎麼樣的?

使用python從網站抓取數據,並將這些數據保存到SQLite資料庫中,然後對數據進行清洗,最後對數據進行數據可視化分析。

可是熟悉的人應該知道,python爬取簡單,但是分析起來是很困難的,SQL語句、Pandas和Matplotlib這些十分繁瑣,一般人也不會。

於是我想到了用一種更簡單的方式進行數據分析,那就是python爬取+BI分析。什麼是BI就不用我多做介紹了吧,python強大的數據獲取能力,配合敏捷BI簡單快捷的數據可視化操作,分析效果那肯定是槓槓的!

那這次我們就來看看「人均985,年薪百萬」的知乎背後,到底有什麼秘密?話不多說,開爬!

一、我們想要哪些數據?

知乎用戶的學校和公司肯定是首當其衝的,我想看看到底這些人是編的還是真的哈哈哈。

其次就是性別,職業,地理位置,活躍程度等,統統扒個遍。

二、爬取的過程

知乎現在改用https請求了,數據加密,但是問題不大,重要的是網頁數據改動了,而且在請求時後臺會對爬蟲做一些判斷,因此在每次請求是都需要加上request header,儘可能接近瀏覽器請求的樣子。

得到列表頁的源碼後,你可以從其中獲取到每個問題的連結:

每頁有20個問題,所以你可以獲得到20個問題的連結,之後就是對每個問題的處理:

能實現到這一步,剩下的就是循環、判斷和一些細節了。

最終一部分的代碼如下:

import requests

import pandas as pd

import time

headers={

'authorization':'',#此處填寫你自己的身份驗證信息

'User-Agent':''#此處填寫你自己瀏覽器的User-Agent

}

user_data = []

def get_user_data(page):

for i in range(page):#翻頁

url = 'https://www.zhihu.com/api/v4/members/excited-vczh/followees?include=data%5B*%5D.answer_count%2Carticles_count%2Cgender%2Cfollower_count%2Cis_followed%2Cis_following%2Cbadge%5B%3F(type%3Dbest_answerer)%5D.topics&offset={}&limit=20'.format(i*20)

response = requests.get(url, headers=headers).json()['data']

user_data.extend(response) #把response數據添加進user_data

print('正在爬取第%s頁' % str(i+1))

time.sleep(1) #設置爬取網頁的時間間隔為1秒

if __name__ == '__main__':

get_user_data(10)

df = pd.DataFrame.from_dict(user_data)#以字典保存數據

df.to_csv('zhihu.csv',encoding='utf_8_sig')#保存到用戶名為zhihu的csv文件中,encoding='utf_8_sig'參數是為了解決中文亂碼的問題

print(df)

更多原始碼見文末!

在Python代碼中我並沒有採取線程池,而是採用了開起10個main()方法去抓取,即10個進程,歷時4個小時,爬取了57w+數據。

三、用BI進行數據可視化分析

現在我們已經進行到最後一步用BI開始做數據可視化了,揭秘知乎的時刻就要到來了。

市面上的BI工具有很多種,國外的Tableau和國內的FineBI都是BI領域的領先者,但早就聽說Tableau適合有基礎的數據分析師,對於小白很不友好。再加上我前天偶然間看到了IDC的報告,發現帆軟的市場佔有率是第一,為了避免回爐重做,我選擇了FineBI這款敏捷工具,事實證明,我的選擇是對的。

首先在官網下載FineBI,雖說是企業級的數據分析平臺,但是它對於個人是永久免費的,文末給大家準備了下載連結~

然後直接通過FineBI提供的數據配置端的功能,添加SQL數據集(或者直接添加表也行),查看和驗證剛剛爬取並且入庫的數據是否已經真正成功入庫到MySQL中了。

忘了說,FineBI的一大特點就是自助分析。什麼叫自助分析?就是我自己拖拖拽拽數據,就可以有和Matplotlib一樣的效果,你也許還會想到Excel,但一般幾萬行的數據以上,excel基本就無能為力,很卡。但是FineBI處理大數據依然可以行雲流水,效率高几十倍上百倍都有可能。

同時VBA有個致命弱點是,它只能基於excel內部進行自動化,其他方面就沒辦法了。

我在寫這篇文章之前,分析過房價和銷售額,特地把它做成了動圖供大家參考:

四、知乎的數據可視化

FineBI的儀錶板可自行拖拽調整組件位置,配上多種類型的柱狀圖、餅圖、雷達圖,數據可視化就是這麼輕而易舉,只有你想不到,沒有它做不到。

1、哪個城市的知乎用戶最多?

從雲詞圖中我們可以看出,城市越繁華,知乎的用戶人數就越多(文字越大,比重越大)。所以也可以看見北上廣深四個一線城市處於最中心,新一線城市緊隨其後,換句話說:知乎的人大部分在一線城市或者新一線城市,果然是見多識廣!

再來看看具體的排名吧:

杭州處在第三名了,果然網際網路的發源之地之一不是吹的,阿里網易起到了很大的作用,為什麼這麼說?等你看到職業就明白了。

2、他們都是哪些學校的?

你看看,你看看,這學歷真的很高,誰說人均985都是吹的?

不過也不奇怪,知乎主打的就是高知識份子的聚集地,而且學生比起上班族,有更多的時間玩手機。

既然分析到學校了,我們肯定要來看看各個高校上玩知乎的男女比例:

不用我說你們就可以猜到,藍色代表的是男生,女孩子要麼在逛街,要麼就在學習,低頭玩手機的肯定是男孩子哈哈哈(雖然我也是男的)。

我們再來看看各地區有哪些高校是知乎重度用戶,顏色越深代表該學校的知乎用戶越多:

別說了,知乎人均985實錘了,我流下了羨慕的淚水,我想請問同學,是怎麼做到玩和學習同時兼顧的?你如果教教我,我高考距離清華的錄取分數線可能就更近一點了....

3、知乎的職業比例

除去學生之後,我們發現知乎的人都是....

產品經理最多,這是最近幾年最火爆的職業吧,不過話說你的文檔寫好了?需求畫好了?是不是知乎的頁面交互你不太滿意?不然還不去幹活?

可以看到,除了一些網際網路公司的常見職位外,教師和律師用戶在知乎中也佔據不小的比重。

我們再用一張熱力圖來觀察知乎主流職業(前四名)在各個地區的分布情況,顏色越深,代表該職業在該地區的人數越多:

總結

我分析了這麼多,不是想告訴你們知乎的用戶到底怎麼怎麼樣,而是想說如果想做數據分析,FineBI確實是一款很好用的工具,對個人和對企業都是這樣。

當然了,上面才只是FineBI的冰山一角,更多的東西還得你們自己去探索。

相關焦點

  • 如何選擇數據分析可視化工具?Excel, Tableau還是Power BI?
    Excel中的「股票」和「地理」等選項有助於快速獲取數據的詳細信息。通過Tableau和Power BI,你可以自由瀏覽數據而無需提前知道所需的答案。可以先發現關聯和趨勢,然後深入了解導致其發生的原因。這些系統能一目了然地了解數據。3.
  • PythonPython100個練手項目
    天貓商品數據爬蟲    3. 爬取淘寶我已購買的寶貝數據    4. 每天不同時間段通過微信發消息提醒女友    5. 爬取5K解析度超清唯美壁紙    6. 爬取豆瓣排行榜電影數據(含GUI界面版)    7.
  • 想用Python做數據可視化?先邁過這個「坎」
    python的人都會面臨一個問題,尤其是初學者:我應該選哪個來實現數據可視化? 以下就是將要用來創建繪製數據的示例: ·Pandas ·Seaborn ·Ggplot 在示例中,我將使用pandas進行數據處理並使用它來完成可視化的效果。
  • Python爬取上萬條大眾點評數據,解讀一線快餐品牌背後的秘密
    中國的快餐市場競爭一直都很激烈,關於各種品牌江湖上也流傳著各種神奇的故事,那麼你知道本文使用Python爬取了上萬條大眾點評商家數據,告訴你答案!除去沙縣小吃和蘭州拉麵,我們繼續來看麥當勞和肯德基這兩家西式快餐店,可以看到,這兩家快餐店在四個一點城市中的店鋪數量基本持平,果然有肯德基的地方就有麥當勞並非傳言!
  • Python可視化工具推薦:圖片交互性行極佳的Plotly
    1、 簡單介紹一般大家在學習python機器學習的時候,用的最多的可視化的包就是matplot和seaborn, 這2個可視化的優點在於門檻低,代碼容易理解,並且容易上手。當前使用的數據是股票數據,使用pandas_datareader中的yahoo的API下載一些股票數據,將下載阿里巴巴,蘋果,微軟,和IBM的每天最高價,並且做出一個圖出來。
  • Excel與Python爬取數據,兩者PK,誰優誰劣?
    小夥伴們大家好~Excel和python作為當前兩款比較火的數據分析處理工具,兩者之間有很多共性也有很大的區別。今天一起來看下在抓取網頁數據這塊,兩者有什麼異同點。如果用python爬取上面的網頁,只需要三行代碼,如下圖所示:這裡沒有用BS4,xpath等網頁解析方法,pandas提供了read_html的功能,可以直接獲取網頁數據。與Excel相比,python的優勢在於效率與便捷性。
  • Python數據可視化:氣泡圖的3種畫法
    Bokeh繪製氣泡圖   bokeh是python中一款基於網頁的畫圖工具庫,畫出的圖像以html格式保存。color_scatter.py example", mode="cdn")TOOLS = "crosshair,pan,wheel_zoom,box_zoom,reset,box_select,lasso_select"# 根據上面的工具配置生成一個畫布p = figure(tools=TOOLS, x_range=(0, 100), y_range=(0, 100))# 根據上面的數據生成離散的圓
  • Python爬取招聘網站數據並做數據可視化
    前言 本文的文字及圖片來源於網絡,僅供學習、交流使用,不具有任何商業用途,如有問題請及時聯繫我們以作處理。 通過開發者工具可以看到,獲取返回數據之後,數據是 在 window.__SEARCH_RESULT__ 裡面,可以使用正則匹配數據。
  • Power BI
    下圖是Power BI的數據導入窗口:Power BI還支持直接從網頁抓取數據。下篇中會演示以網頁抓取的方式獲取數據。比較高大上吧:)2. 易用性(無需編程)筆者給自己的定位是一枚數據科學家,因此不會也不能將過多精力放在可視化工作上。
  • python數據挖掘常用工具有哪幾種?
    python有強大的第三方庫,廣泛用於數據分析,數據挖掘、機器學習等領域,下面小編整理了python數據挖掘的一些常用庫,希望對各位小夥伴學習python數據挖掘有所幫助。1. Numpy能夠提供數組支持,進行矢量運算,並且高效地處理函數,線性代數處理等。
  • 「人均985」的知乎要上市,吃不飽飯的大V們卻在集體「出逃」
    「人均985」的知乎要上市,吃不飽飯的大V們卻在集體「出逃」 2020-12-24 07:36 來源:澎湃新聞·澎湃號·湃客
  • 手把手教你使用Python進行高級數據可視化
    數據可視化能力已經越來越成為各崗位的基礎技能。領英的數據報告顯示,數據可視化技能在2018年中國最熱門技能中排名第一。就數據分析而言,可視化探索幾乎是你正式進行數據分析的第一步,通過SQL拿到數據之後,我們需要使用可視化方法探索和發現數據中的模式規律。
  • 8個流行的Python可視化工具包.
    之前文章裡出現過漂亮的圖表時,也總有讀者在後臺留言問該圖表時用什麼工具做的。下面,作者介紹了八種在 Python 中實現的可視化工具包,其中有些包還能用在其它語言中。快來試試你喜歡哪個?用 Python 創建圖形的方法有很多,但是哪種方法是最好的呢?當我們做可視化之前,要先明確一些關於圖像目標的問題:你是想初步了解數據的分布情況?想展示時給人們留下深刻印象?
  • 你知道全知乎閱讀量最高的問題是什麼嗎?我全都爬下來了
    本文轉載自 一行數據,作者 一行 大家好,我是一行 雖然我們公司是做流量增長的,爬取了知乎全站來做分析
  • 用Python進行數據可視化的10種方法
    數據科學家並不遜色於藝術家。他們用數據可視化的方式繪畫,試圖展現數據內隱藏的模式或表達對數據的見解。更有趣的是,一旦接觸到任何可視化的內容、數據時,人類會有更強烈的知覺、認知和交流。 在數據科學中,有多種工具可以進行可視化。在本文中,我展示了使用Python來實現的各種可視化圖表。 怎樣才能在Python中實現可視化?
  • 另闢蹊徑,爬取Ajax數據內容
    通常利用python 爬取ajax數據 有兩種方式:①基於selenium+phantomjs+python的動態爬蟲技術②基於逆向分析但是這兩種方式都不太容易。基於上述原因,我另闢蹊徑 找其他更簡單的方法爬取自己所需要的內容。【聲明:我不是專業的爬蟲工作者,只是業餘愛好者,偶爾爬取一些需要的內容。
  • Python大數據分析疫情:如何實現實時數據爬取及Matplotlib可視化
    第一篇文章將分享騰訊疫情實時數據抓取,獲取全國各地和貴州省各地區的實時數據,並將數據存儲至本地,最後調用Maplotlib和Seaborn繪製中國各地區、貴州省各城市、新增人數的圖形。希望這篇可視化分析文章對您有所幫助,也非常感謝參考文獻中老師的分享,一起加油,戰勝疫情!
  • 數據可視化最有價值的50個圖表 | 網際網路數據資訊網-199IT | 中文...
    在數據分析和可視化中最有用的 50 個 Matplotlib 圖表。 這些圖表列表允許您使用 python 的 matplotlib 和 seaborn 庫選擇要顯示的可視化對象。這些圖表根據可視化目標的7個不同情景進行分組。 例如,如果要想像兩個變量之間的關係,請查看「關聯」部分下的圖表。 或者,如果您想要顯示值如何隨時間變化,請查看「變化」部分,依此類推。
  • 數據之美:可視化會給你意想不到的答案!
    數據可視化可以應用於幾乎所有領域,每當需要洞察或推斷數據時,就離不開數據可視化。但是,數據可視化並不僅僅是為了美觀。以圖像形式展示數據有如下幾個原因:尋找關聯:在沒有數據可視化的情況下,嘗試確定兩個或多個事物之間的相關性是非常困難的。在數據分析中尋找關聯是非常關鍵的,因此,若想對數據做出最深刻的理解,數據可視化是至關重要的。
  • Python中的時間序列數據可視化的完整指南
    時間序列數據在許多不同的行業中都非常重要。它在研究、金融行業、製藥、社交媒體、網絡服務等領域尤為重要。對時間序列數據的分析也變得越來越重要。在分析中有什麼比一些好的可視化效果更好呢?沒有一些視覺效果,任何類型的數據分析都是不完整的。因為一個好的情節比20頁的報告更能讓你理解。因此,本文是關於時間序列數據可視化的。