談一談簡書數據的爬取

前天的文章發出之后有簡友留言說,是看我的專題文章學習爬蟲的,并告訴我,簡書更新新版網站后,我是第一個講解的,他當時能搜到的全是舊版本的文章。今天來詳細說說簡書的數據抓取。

學習Python爬蟲離不開大量練習實戰,爬~爬~爬,本著“所有網站皆可爬”的原則,只要你感興趣的網站數據都可以拿來練習,一般在初學時大家練得比較多的是,豆瓣、知乎和新浪微博,堪稱“爬手三大練手地”,但是近半年多來,爬取簡書學習和練習的童鞋越來越多。

那大家對簡書上哪些數據會比較感興趣,其結構和關鍵點又是如何?在學習的爬蟲中又需要注意哪些?

一、網站整體結構

我是從一個爬蟲的角度來說的。基本可以歸為以下幾種類型頁面:

  • 第一類:首頁,新上榜,7日熱門,30日熱門,專題頁面
    都屬于(多個作者的)文章列表頁,獲得文章基本數據,可以獲取數據進行分析:

    簡書首頁文章的閱讀量分析,如果抓取了不同時間的可以做對比分析,如大家現在普通感覺文章上了首頁閱讀量比之前要少,究竟減少了多少,主要原因是什么?

上首頁的熱門文章的類型,標題有什么特點?

是哪些作者經常上首頁,霸占了首頁熱點,有什么特點?還可以不同時間的對比分析,如半年前與現在對比。

這類分析比較難的是文章類型,簡書對文章沒有類型的標注,如TAG類型,只有專題的不同,但是專題之間有些還是有比較多的交叉重合。建議文章在發表時,作者可以設置文章類型標記。目前想對大量文章進行分類只能使用機器學習、NLP。

要獲取專題收錄情況,首頁文章會顯示一個主要的專題收錄,在文章頁面可以獲取這篇文章的所有專題收錄。

  • 第二類:作者主頁

這個頁面的數據比較多,可分為:

  • 1) 作者基本數據(用戶基礎數據):文章數、字數、粉絲數、喜歡數
    簡書作者大排名一類的分析文章,每隔一段時間都會有,也比較受歡迎,主要就是要獲取這些數據。

  • 2)文章數據:包括作者的每篇文章數據:閱讀量、評論數、獲贊和打賞
    曾有一個作者,因為出書的需要,要解自己所有文章的總閱讀量和評論量,就幫助爬過一遍他的文章數據。
    我之前寫過用一鍵生成簡書目錄,簡書連載作者福音: 一鍵生成連載目錄和連載作品排行統計(Python爬蟲應用)

  • 3)動態數據(timeline):可以獲取,作者的注冊時間,作者打賞他人、評論他人文章的情況,這些反應了用戶的活躍情況。
    我之前寫過一篇文章,“簡書首席評論員”的誕生與消失,就是找那些沒有發表文章,卻寫了很多評論的用戶。

    比較遺憾的是個人主頁上沒有更多的作者個人信息,這個相對于豆瓣、新乎、微博來說,個人信息是比較少的,如性別、年齡、學校、地域地址等。

  • 4)消息中的數據:收到的喜歡和贊,關注
    爬取這些數據需要登錄,我使用的是Cookie的登錄方式,避免了簡書登錄需要滑動解鎖。

    這些數據可以分析,作者的粉絲、獲贊的增長情況。

    消息中的簡信,這個我寫過一個簡信助手,Python實現的站內消息群發助手-V1.0,不過是針對舊版網站的。

    消息中還可以爬取專題投稿收錄情況,這個適用于專題運營者。

  • 第三類:文章頁
    這個一般爬的不多,需要的情況是:
    1. 統計一篇文章的字數
    • 文章被專題的收錄情況
  • 爆文的評論情況
  • 第四類:其他頁
    其他類型頁面貌似就剩一個,推薦作者

以下幾篇文章,都是關于簡書新版網站爬取的一些分析。
Scrapy抓取Ajax數據
Python爬取數據的分頁分析
分析一個爬蟲的分頁問題

二、簡書爬蟲的效率

很多學習、練習Python爬蟲的童鞋,都想過盡可能多的抓取用戶,盡可能多的字段。

我的思路,是用最少的入口,獲取最多的用戶,采取的是爬取關鍵用戶的粉絲方式。先不考慮注冊時間,爬取用戶timeline一些用戶的作者太多。可以考慮的多個爬蟲一起工作,分別爬取數據入庫。目前沒有更好的方式。

三、一個爬蟲的自我修養

有爬蟲就有反爬蟲,相互斗爭和較量。目前在簡書上還沒有被禁過,雖然我們使用各種防止被Ban的方法,偽裝瀏覽器、使用代理IP,使用隨機Cookie,selenium等,作為一個爬蟲愛好者和學習者,有幾點還是要特別注意:一 限制爬蟲下載速度,二 避開用戶使用期爬取,我一般都選擇深夜時開始。

三、爬蟲開發工程師的段位

上周在我們的微信群,數據蟲巢 黃老師,給出一個爬蟲工程師的段位,稍后他會有文章和其他形式更詳細地分享。貼出來,與大家共勉。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容