python数据比例_知乎人均985?Python爬50W数据,BI做出可视化后,我有了答案
一次完整的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的冰山一角,更多的東西還得你們自己去探索。
總結
以上是生活随笔為你收集整理的python数据比例_知乎人均985?Python爬50W数据,BI做出可视化后,我有了答案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: extjs获取焦点和失去焦点_[NBA夏
- 下一篇: sql backup database备