天天看點

Python系列爬蟲之Scrapy實戰 | 知乎粉絲小爬蟲前言開發工具環境搭建資料爬取資料可視化

Python系列爬蟲之Scrapy實戰 | 知乎粉絲小爬蟲前言開發工具環境搭建資料爬取資料可視化

前言

寫個知乎粉絲小爬蟲,分為資料爬取和資料的簡單可視化兩個部分。讓我們愉快地開始吧~

開發工具

Python版本:3.6.4
相關子產品:

scrapy子產品;

pyecharts==1.5.1子產品;

wordcloud子產品;

jieba子產品;

以及一些python自帶的子產品。

環境搭建

安裝Python并添加到環境變量,pip安裝需要的相關子產品即可。

資料爬取

先随手推一波自己開源的利用requests進行模拟登入的庫:

https://github.com/CharlesPikachu/DecryptLogin
           

目前該庫支援模拟登入的網站包括:

1\. 微網誌
           

後續會不斷添加和完善該庫的功能以及該庫相關的一些小應用。當然,今天是用不上了,因為我發現他喵的知乎的粉絲資料竟然一直是一個裸的API,即使是改版之後,也不需要驗證什麼登入後的cookies之類的東西直接就能抓取到了。

言歸正傳,簡單說說這個資料怎麼抓取吧,其實很簡單,F12打開開發者工具,重新整理一下關注者頁面,就可以發現:

Python系列爬蟲之Scrapy實戰 | 知乎粉絲小爬蟲前言開發工具環境搭建資料爬取資料可視化

請求這個接口直接就能傳回目标使用者的粉絲資料了,接口的組成形式為:

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)
           

我比較好奇中間那個“狗”字是什麼鬼。。。

然後再統計一下粉絲的男女比例呗?

Python系列爬蟲之Scrapy實戰 | 知乎粉絲小爬蟲前言開發工具環境搭建資料爬取資料可視化

應該算是很真實吧?[圖檔上傳失敗…(image-b139c3-1617265093411)]

讓我們再來看看我的關注者裡有多少VIP使用者?

Python系列爬蟲之Scrapy實戰 | 知乎粉絲小爬蟲前言開發工具環境搭建資料爬取資料可視化

好的,答案是0個~

再來看看follow我的人一般有多少followers呗:

Python系列爬蟲之Scrapy實戰 | 知乎粉絲小爬蟲前言開發工具環境搭建資料爬取資料可視化

最後再來看看粉絲的回答數統計呗:

Python系列爬蟲之Scrapy實戰 | 知乎粉絲小爬蟲前言開發工具環境搭建資料爬取資料可視化

為了幫助提升正在學習Python程式設計的夥伴們,在這裡為大家準備了豐富的學習大禮包

Python系列爬蟲之Scrapy實戰 | 知乎粉絲小爬蟲前言開發工具環境搭建資料爬取資料可視化

All done~完整源代碼詳見相關檔案。