付費的知識星球要過期了,python 教你怎麼辦

2020-12-11 灣區碼農
封面圖

#Python爬蟲#前面講過 python 爬蟲的常用技巧總結,帶你輕鬆入門,今天補上一篇實戰指南,爬取知識星球裡某個星球的所有數據,對,你沒有聽錯,是所有數據,包括了內容、問答、評論、圖片、文件、甚至是誰點了贊!心動了吧,趕快行動吧。

當然,本篇文章需要你有一點 python 基礎,如果沒有的話,建議你先收藏,去找一些教程學習一下這門工具人語言。

好了,廢話不多說,馬上開始。

首先,導入所需要的包:

導入所需要的包

準備資料庫

把獲取的數據存入 MongoDB 中,為什麼選擇 MongoDB?因為非關係型資料庫比較簡單,我們用到的數據結構也不複雜,開發起來比較快。

準備資料庫

分析知識星球的網絡請求數據

用 Chrome 瀏覽器的開發者工具對知識星球 PC 端的網絡請求進行觀察,發現獲取星球話題的請求只有一個,我們把它賦值給 BASE_URL。同時發現登錄的 token 就在 cookie 裡面: zsxq_access_token,嘖嘖,太明顯了。

BASE_URL 和請求頭的構造

對話題數據進行分析,可以歸納總結出以下結論:

話題類型有兩種:talk 是普通話題,只有 1 條內容,q&a 是問答,問答含有提問和回答 2 條內容。所有內容均可能包含圖片或者文件(不太確定問答的內容是否會包含文件,因此當作可能包含文件處理)。當請求返回的話題數量為 0 時,說明已經爬取完畢。我的 CPU 有 4 個核心,考慮到文本、圖片、文件出現的頻次和下載時間,多線程設計如下:

設計 3 個隊列:topic_q、images_q、files_q,分別存取 end_time、圖片信息、文件信息,分別用於獲取話題信息、下載圖片、下載文件。設計 4 個線程,1 個獲取話題信息,2 個下載圖片,1個下載文件。當所有隊列結束時,程序結束。

流程

為了能讓你更好地理解,我畫了一副流程圖,可以配合流程圖來理解代碼,事半功倍。

流程圖

多線程並行

根據上面的分析,創建 3 個隊列,4 個線程,並把下面地代碼放到連接、關閉資料庫代碼的中間:

多線程並行

下面是各個線程函數,作用是不斷的從對應任務隊列中取出參數並執行處理方法,fetch_topics、fetch_images、fetch_files 分別是下載對應內容的方法。

各個線程函數

下載話題數據

創建 fetch_topics 方法,用來發送獲取星球話題的請求,上面已經設置好了 BASE_URL,這裡設置請求參數即可。

觀察發現,API 的參數有 3 個,分別是:

scope:話題範圍,例如:精華話題還是圖片話題。all 代表全部話題。count:返回的話題數量,網站裡默認 20 個,但經測試,30 個也能正常返回,40個以上報錯。end_time:關鍵參數,知識星球通過它來分頁,不填則返回最新的 count 個話題,比如 20,如果你想得到第 21 - 40 個話題,那麼就需要設置 end_time 為第 20 條話題的創建時間,並且要把創建時間的毫秒數減 1。

下載話題數據

下載圖片

圖片可能包含三種類型:thumbnail 縮略圖、large 大圖、original 原圖,不一定全都有,因此在下載前要判斷。

下載圖片

下載文件

知識星球 PC 端是無法下載文件的,我用手機抓包後才得到了下載地址:

下載文件

以上就是今天的實戰指南。最後是你們最關心的哪裡下載源碼?老實說,我能給你的最好建議其實是按照上面的例子自己敲一遍,真的很管用,學編程就是要動手。

註:所有代碼均基於 python 3.6.5 版本,使用其他版本可能無法運行。

如何下載源碼以及更多的編程資源?只需簡單 2 步:

1. 關注百家號:灣區碼農,也就是我

2. 回復關鍵詞 zsxq即可獲得

求求你,長按下面的贊,給我個三連吧,這個對我真的很重要~

相關焦點

  • 買到過期食品怎麼辦 教你如何維護自己的合法權益
    正所謂,病從口入,食品的質量安全問題相當重要,對於質量不合格、過期、添加有害物質等等食物,一旦攝入身體,將對身體造成很大的傷害。那麼,要是在日常生活中遇到買到過期食品怎麼辦呢?別急!下面小編教你如何維護自己的合法權益,走,一起好好了解清楚這方面的知識,對自己有益無害。
  • 香水過期了怎麼辦?教你一招,過期香水也能好好利用!
    文/小妞美妝達人香水過期了怎麼辦?教你一招,過期香水也能好好利用!說起香水,它不但可以提高你自身的魅力,還可以舒緩身心。1、做室內薰香你可以在你不用的香水瓶裡面加一個香薰的藤條,做成香薰瓶,也可以在用完的空瓶中放入小蘇打,撒上香水充分混合,這樣就可以做成自製的除臭劑放在房間,衛生間,浴室門廳等位置,就可以起到很好的除臭效果。
  • 知識星球App怎麼用 知識星球App使用教程
    知識星球是目前很高端的一款App,可以提高門檻,收費一些知識點。下面,我們來看看知識星球App使用教程。知識星球系列軟體最新版本下載知識星球軟體版本:3.0.1iOS軟體立即查看知識星球軟體版本:3.4.3Android軟體立即查看知識星球怎麼用?
  • 知識星球
    社群提供的價值:1.分享滲透實戰案例,經驗交流,以及繞過技巧2.分享資料課程,幫助大家完善個人知識體系3.提供遠程模擬面試,幫助你提高安全面試成功率4.幫忙尋找你需要的資料以及課程5.SRC漏洞挖掘的一些東西和技巧,希望可以幫助到大家6.提供答疑和解惑,幫助你理解一些難題
  • 過期的精油要怎麼使用 幾個方法教你物盡其用
    過期的精油如何利用?相信這個問題是很多女性特別想要了解的。因為一瓶質量好的精油價格肯定是不菲的。因此,下面特意教大家如何物盡其用,幫你省錢又省心。來源:站酷相信對於有經常護膚的女性,對於精油這款護膚產品是非常熟悉的。
  • 信用卡過期了沒領到新卡怎麼辦?
    問 答 信用卡過期了沒領到新卡怎麼辦?請看小編介紹:信用卡過期了沒領新卡怎麼辦? 信用卡過期了沒領到新卡怎麼辦?眾所周知,信用卡具有使用期限,若超過信用卡有效期則信用卡不能繼續使用。
  • 財神叔:2018年,知識付費衰落,行動付費崛起,你落伍了嗎?
    因此我們把知識付費這個宏觀概念具體化,可以把所有的知識付費,統一拆分成三大層級。幫你知道的知識付費。幫你悟到的知識付費。幫你做到的知識付費。古往今來,人類知識傳承,都在按照這三個層級演進。不過確實比較冤枉,因為這是建立認知的知識付費固有特性。我們舉個簡單的例子,比如你要做算術題,不知道3x3等於幾,怎麼辦呢?於是你去請教小王,並給了小王3塊錢,小王告訴你,3x3等於9,於是你知道了。
  • 知識付費 樂見其成
    談及知識付費,我們並不陌生,知乎、得到、千聊、知識星球等網際網路平臺凝聚起不少人氣,一度成為這一領域的領跑者。不過,現在這種狀況正在悄然發生變化,一些傳統出版機構雖說姍姍來遲,卻也開始熱情擁抱知識付費,並呈現出強勁發展勢頭。
  • 增長案例:為知識星球制定北極星指標
    甚至管理層沒有北極星指標的概念,只是提出舉辦一場活動要拉新一萬用戶的需求。這時無論你是作為某條產品業務的增長負責人還是只是負責增長的某一塊工作,都可以通過以下這套方法來更有依據的分析和更有效率的溝通,統一認知合理預期。
  • 如何通過知識付費賺錢?知識付費賺錢案例
    雖然很多人說知識付費是銷售焦慮,但這是帶有偏見和歧視了. 例如,如果你正在學習辦公軟體,但是你自己學習的時候不知道從哪裡開始,你可以去搜尋引擎找一個很小的功能很長一段時間都找不到答案。這時,一位經驗豐富的老師會給你幾分鐘時間來解決這個問題,你會願意為此付出代價的。
  • 新手如何操作知識付費項目?月賺3-5萬的網際網路知識付費搬運賺錢項目運營解讀
    大家看標題《新手如何操作知識付費項目?月賺3-5萬的網際網路知識付費搬運賺錢項目怎麼運營》,就知道今天說的網賺項目就是知識付費項目,一個以前的虛擬資源賺錢類項目升級版!以前還是比較小眾,這類型項目以前就存在,只要網際網路還在的話,,未來也會一直存在。按項目評級,知識付費項目可以說是36D、5A星級項目,虛擬資源,一次生產,終生出售,這是知識付費課程項目的魅力。
  • 如何操作網際網路知識付費項目?如何搭建完整的知識付費項目盈利運營體系?
    即使你要為K12的知識買單,你的產品設計也還是要要針對學生家長,讓家長認為你的產品對孩子有用,那你的成交率才會更高。基本上過額50歲以上的人都是混日子。他們中的大多數退休去打球。大多數老年人要麼幫助他們的孩子帶孫子,要麼到老年娛樂中心去玩。中國的老年人,中國的阿姨顯然不是知識付費的核心群體。產品定位一定要準確,要知道取捨,你的產品一定不能全是受眾。
  • 知識付費 你的路在何方?
    微信、微博、脈脈等社交軟體在文末開通了打賞功能;知乎、果殼作為國內兩大知識型社區開始知識商業化運營,分別推出「值乎」和「分答」;會員制已經成了視頻網站的標配;甚至據說看新聞都要準備給錢了。這些備受關注的種種跡象表明,知識產品的付費時代已經來臨。
  • 知識付費時代,教你「無粉絲變現」套路
    不知道大家有沒有經常性的在一家店裡面買早餐,如果有的話,相信每次你只要去的話,店裡的老闆就知道你要吃什麼。其實別的事情也一樣,你如果總是做一樣的事情的話,別人就會默認你會繼續做這樣的事情。就像你在電腦上登陸過微信,下次打開這個電腦的時候,就會直接跳出你的微信號登錄界面。
  • 零基礎python入門,教到你學會為止
    這是一個對初學者友好的課程,即使你之前沒有接觸過任何編程相關的知識也可以通過此課程寫出自己的代碼。2. 課程教授 Python 程式語言的使用,不管你之後是打算做網站開發、爬蟲或者數據分析,甚至是向人工智慧領域深入研究,本課程裡所涉及的內容都能派上用場,是你進一步學習的保障。3.
  • 「免費教畫畫」是騙局?知識付費不能只停留在口號
    先通過免費試學的方式接觸某一專業最基礎的東西,看看是不是真的適合自己,自己是不是真的感興趣、願意學,然後才要付費學習更深入的內容,這樣的方式,難道不香嗎?更何況,如果較為深入的內容也可以免費學到,那還要教育機構幹什麼?那又如何能夠對學習者進行最簡單的篩選——錢雖俗,但確實能夠從一定程度上反應一個人對一件事的上心程度。知識應該得到尊重,知識付費不能只局限於口號!
  • 知識付費上癮:為什麼越來越多的年輕人分期貸款也要花錢買課?
    其實你不知道,知識付費是會上癮的。你身邊有沒有這樣的人?隔一段時間不報個班學點新東西,就覺得渾身難受?寧願分期貸款,也要花大價錢買課?早上的時候收到朋友發來的一張圖片,圖片裡天書一樣的一行行代碼看的我疑惑也驚訝。
  • 看看「知識付費」底色,羅振宇沒法教你成功,你卻得到了……
    「減肥餐的關鍵是低碳,穩定體重要多吃蔬菜水果,課程裡教授的這些知識或者叫常識,其實我本來就知道。那我一次次買各種付費課程是為什麼?還是因為標題夠吸引、勵志:《如何18天狂瘦49斤》、《9節課讓你3個月瘦30斤》……但這種想要一夜暴瘦也許和一夜暴富的心態是類似的,都是我們太想急切看到成果的產物。」
  • 知識付費進階玩法:淘寶免費粉絲全自動營銷,高手都是這麼玩的!
    網際網路的發展,現在你要學某項技能可以直接在網上學習了,有各種各樣的課程及直播,這就是一個知識付費的時代。比如,你想學習python或者是自媒體短視頻運營等,你都可以通過網上的一些課程學習,同時會把你拉到一個群裡,這種就是知識付費社群。
  • 宋社長:知識付費是個偽命題
    到了今天,加強國民教育,提高全民素質,中小學開始了九年義務教育,這個可以算是「知識」體系的正規軍吧,你現在跟我說知識付費?是誰來認可和界定你的知識的呢?還是要提倡免去九年義務教育這個公民福利?比如師傅帶徒弟,有的雖然沒有直接付費,但是過年過節孝敬師傅,冬天暖個被窩,時不常打個洗腳水,也算是打個零工來償還的回報方式。而今,除了國家教育,民間最有價值的知識付費體系要數各種培訓班、輔導班、民營教育機構什麼的,他們目標明確,知識體系明確,考核明確,人們願意為這種知識付費。