一次即興的爬蟲經曆:A站B站數據分析實戰

作者: 伊人影院科技集團 / 時間: 2019-05-30 00:07:48
瀏覽次數 101

  在很多領域都需要用數據來說話,整個數據的采集過程也是對思維方式的一次考驗。本篇文章作者介紹了自己的一次爬蟲經曆,其中也講述了自己是如何通過轉換思維的方式使得整個過程更加流暢。

  

一次即興的爬蟲經曆:A站B站數據分析實戰

  說明:我不是技術人員,整個過程並沒有涉及到一定需要技術的地方。

  不過,非技術人員去抓取數據,豈不是更有意思的一件事情?

  前幾天,在看B站時,突然想,是不是可以抓取數據分析一下?

  曾抓取過B站番劇的數據,用於建立一個番劇排行榜,這次是投稿,難度比抓取簡單的靜態頁麵要大。

  一、精益思維,第二桌麵

  看著電腦屏幕,遇到了第一個困難:爬蟲中很多步驟很耗費資源,筆記本日常要用,我需要第二台電腦。

  靈機一動,服務器是不是可以做第二個桌麵呢?剛好雙11各大雲服務器商都在做活動,雲服務器除了linux係統外,還有windows係統。

  沒有用過windows係統的服務器,是否該買一個呢?

  想到了精益思維,我需要逐步驗證來確定最適合的選項。

  一步步的改變配置,來驗證最適合自己的配置,從CPU核心數到內存到帶寬,雲服務器商都提供了按需使用的選項,可以在測試後立刻釋放服務器。

  在進行了多次測試後,我陷入了一個新的困惑之中:真的需要第二台電腦嗎?

  這真的是一個必要的選擇嗎?

  甚至爬取數據進行分析真的是一個有意義的事情嗎?

  我正在整理收藏,還有大量的文章沒有歸檔,因此耽誤了計劃,是否值得?

  還沒有開始,就已經引發思維碰撞了,這一定會是一次有趣的經曆,我決定立刻行動。

  此時,確認了需要第二台電腦,我麵臨兩個選擇:是選2核心4G還是選4核心8G的機子,在測試中,我使用的是2核心4G,是可以滿足運行幾個軟件的需求的,測試中使用的帶寬是3-4M,過程中並未出現卡頓情形,這說明3M絕對足夠;

  最終選擇了4核8G2M的華為雲機器,選擇時,還不知道我將麵臨什麽,在真正使用時,我將為這個選擇驕傲。

  選擇4核8G2M的機子,在滿足了我的需求的同時,也多了一個月的使用期限,騰訊雲4核心8G10M,155塊2個月,華為雲4核心8G2M,155塊3個月;

  選擇2M帶寬,基於對服務器基本信息的了解,服務器帶寬限製是上行,而不是下行,這跟日常使用的家庭網絡完全相反,個人使用則主要使用下行帶寬;

  這次選擇服務器的經曆,也讓一個基本原則得以完善:不做非必要的選擇,如果做出了選擇,則需避免過度為未知考慮造成過度冗餘。

  

一次即興的爬蟲經曆:A站B站數據分析實戰

  二、開始抓取,研究工具

  曾用過一個簡單的抓取工具八爪魚,但隻做過最基本的頁麵元素抓取, B站投稿頁麵並不是簡單的靜態頁麵;

  為了避免出現意外,我開始全麵研究八爪魚的基本信息,尤其是跟功能限製有關的信息,準備升級為收費版,以便增加可導出的數據量,從1萬增加到10萬;

  

一次即興的爬蟲經曆:A站B站數據分析實戰

  在權衡後,判斷不需要升級,要導出10萬級別的數據量,采集所需要的時間會很大,我並沒有準備花費如此長的時間;

  在了解服務器端桌麵與家庭桌麵的區別時,發現A站采集兩端一致,B站采集則家庭桌麵占優;我做出了發揮各自優點的選擇:本地運行B站采集任務,服務器端運行A站采集任務;

  研究工具信息後,得知可以同時運行兩個任務,但一個賬號隻可以同時保持一個在線;為了在服務器端運行程序,我注冊了一個新的賬號,然後準備使用程序的任務導出導入功能連接兩個賬號;

  在本地測試完畢後,導出任務,然後導入到服務器端,開始運行;

  免費版隻有1萬的數據導出量,這決定了這將是一次數據量嚴重不足的采集,為了緩解這個問題的影響,在生成鏈接時,我使用了隨機數,生成帶有隨機數字的鏈接。生成鏈接使用的是Excel的基本的組合公式,首先生成一組隨機的數字,因為B站A站鏈接都是以數字為基礎的,比如B站的AV號、A站的AC號。

  在生成後鏈接後,需要導入審查工具進行監測。審查工具是為了檢測生成後的鏈接是否可以打開,不能打開的鏈接無法采集也會讓采集報錯。

  為了加快檢測速度,需要多個審查工具並行,我找到一個多開工具,這個工具在後麵發揮了更大的作用,幫助我快速審查了B站的100萬鏈接。

  這時,開始進入測試,為了迎接大批鏈接的到來,我需要對采集流程做初步的優化。

聲明:本網所有文章(包括圖片和音視頻資料)係出於傳遞更多信息之目的,且明確注明來源和作者,不希望被轉載的媒體或個人可與伊人影院聯係,伊人影院將立即進行刪除處理。所有文章僅代表作者觀點,不代表本站立場。