一、前言
作為簡書上第一篇文章,先介紹下小背景,即為什么爬知乎第一大V張公子的138w+關注者信息?
其實之前也寫過不少小爬蟲,按照網上各種教程實例去練手,“不可避免”的爬過妹子圖、爬過豆瓣Top250 電影等等;也基于自身的想法,在浙大 120 周年校慶前,聽聞北美帝國大廈首次給大陸學校亮燈,于是爬取2016- 2017 年官網上每日的亮燈圖并用python的PIL庫做了幾個小logo,算是一名吃瓜群眾自發的慶賀行為。
北美帝國大廈亮燈圖:ZJU120
也因為喜歡魯迅的作品,爬過在線魯迅全集的全部文章標題和鏈接;另外聽說太祖的某卷書是****,于是順帶也爬了遍毛選;還幫老同學在某票據網站下線前爬了大部分機構、人員信息,說是蠻值錢,然而也還在留著落灰......
微博簽到數據點亮中國
再是知道百度Echarts開源的可視化網站里面的圖很酷炫,比如使我著迷的:微博簽到數據點亮中國,http://echarts.baidu.com/demo.html#scatter-weibo 于是想著可以爬取微博大明星、小鮮肉的粉絲的居住地,然后搞搞怎么畫出全國乃至全球分布情況。但發現幾年前微博就限制只能查看 200 左右粉絲數(具體忘了),蠻掃興的,于是將目光轉向了知乎......
而既然要爬,那就爬關注人數最多的張公子吧,數據量也大,這方面是之前小項目所不及的,此前也看過不少爬知乎數據與分析的文章,因此也想練練手,看看大量訪問與獲取數據時會不會遇到什么封IP的反爬措施,以及數據可視化能搞成什么樣。
不過此文在爬蟲部分不做過多展開,看情況后續再另寫一文。
思路如下:抓包獲取張佳瑋主頁關注者api,然后改變網址中offset參數為 20 的倍數,一直翻頁直到獲取138w+關注者信息,其中返回的json數據主要有:關注者的昵稱、主頁id(即url_token)、性別、簽名、被關注人數等,也就是說需要訪問所有主頁id,才能獲取更多信息(個人主頁api:以黃繼新為例):居住地、所在行業、職業經歷、教育經歷、獲贊數、感謝數、收藏數等等。鑒于還不怎么會多進程爬取,如果把所有id再爬一遍會非常耗時間,于是篩選被關注數100+的id,發現只剩了4.1w+,之后較完整提取了這部分的信息,后續可視化也多基于此。
爬取信息一覽