前言
寫個知乎粉絲小爬蟲,分為資料爬取和資料的簡單可視化兩個部分。讓我們愉快地開始吧~
開發工具
Python版本:3.6.4
相關子產品:
scrapy子產品;
pyecharts==1.5.1子產品;
wordcloud子產品;
jieba子產品;
以及一些python自帶的子產品。
環境搭建
安裝Python并添加到環境變量,pip安裝需要的相關子產品即可。
資料爬取
先随手推一波自己開源的利用requests進行模拟登入的庫:
https://github.com/CharlesPikachu/DecryptLogin
目前該庫支援模拟登入的網站包括:
1\. 微網誌
後續會不斷添加和完善該庫的功能以及該庫相關的一些小應用。當然,今天是用不上了,因為我發現他喵的知乎的粉絲資料竟然一直是一個裸的API,即使是改版之後,也不需要驗證什麼登入後的cookies之類的東西直接就能抓取到了。
言歸正傳,簡單說說這個資料怎麼抓取吧,其實很簡單,F12打開開發者工具,重新整理一下關注者頁面,就可以發現:
請求這個接口直接就能傳回目标使用者的粉絲資料了,接口的組成形式為:
https://www.zhihu.com/api/v4/members/{使用者域名}/followers?
沒有什麼特别需要注意的地方,不用懷疑,就是這麼簡單,scrapy建立一個項目爬就完事了:
scrapy startproject zhihuFansSpider
定義一下items:
class ZhihufansspiderItem(scrapy.Item):
然後建立并寫一個爬蟲主程式就OK啦:
'''知乎粉絲小爬蟲'''
運作以下指令開始爬取目标使用者的粉絲資料:
scrapy crawl zhihuFansSpider -o followers_info.json -t json
資料可視化
老規矩,可視化一下爬到資料呗(這裡就以我自己知乎賬号的關注者資料為例好了T_T)。
先畫個粉絲首頁标題的詞雲壓壓驚?
![https://upload-images.jianshu.io/upload_images/2539976-ada286149ecb2285?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
我比較好奇中間那個“狗”字是什麼鬼。。。
然後再統計一下粉絲的男女比例呗?
應該算是很真實吧?[圖檔上傳失敗…(image-b139c3-1617265093411)]
讓我們再來看看我的關注者裡有多少VIP使用者?
好的,答案是0個~
再來看看follow我的人一般有多少followers呗:
最後再來看看粉絲的回答數統計呗:
為了幫助提升正在學習Python程式設計的夥伴們,在這裡為大家準備了豐富的學習大禮包
All done~完整源代碼詳見相關檔案。