資料分析師的工作中,外部資料蒐集跟分析是一個「可能會遇到狀況」!而爬蟲,或是從 API 取得外部資料,是實現外部資料蒐集的一個必要步驟!!
今天這篇文章,我會講這些內容,也回答一些大家常見的疑問,比如說「一定要學爬蟲嗎?」「一定要會 API 嗎?」「會了爬蟲或是 API 要幹嘛?」這類的問題~
- 資料分析師一定要會爬蟲嗎?什麼狀況下要用?常見嗎?
- API 是什麼?是資料分析師匯入資料的必要步驟嗎?
- 用 Google Map API 實作講解:API 的基本概念、實作跟應用
資料分析師真的需要會爬蟲或是 API 嗎?
為什麼資料分析師不一定要學爬蟲或是 API?
- 公司要做的資料分析是「內部資料分析」:通常資料分析師處理的資料分析,資料源自於公司自有的,那就根本不需要爬蟲或是 API!(這是最常見的狀況,但是大部分的人都不知道!)
爬蟲 vs API?相同 vs 相異處分析
- 對於資料分析師來說,爬蟲跟 API 都是為了要取得「數據」去分析,這是相同之處!這裡先談一下他們兩個的相異處:
- 合法性:
- API:API 通常是由網站開發者提供給想取用的人。所以使用 API 通常是合法的
- 爬蟲:爬蟲是通過分析網頁擷取數據,不需要官方授權,因此可能不合法!
- 結構和格式:
- API:API 反傳回來的數據通常是結構化格式,是比較容易處理的格式!
- 爬蟲:爬蟲擷取回來的格式通常比較亂,而且網頁持有者可能會一直改,導致數據要一直做清理
- 頻率和限制:
- API:API 通常會有取用限制,或者可能會跟使用者收費
- 爬蟲:爬蟲可以不受控制,但是可能導致網站過載或是被阻止,所以也是挺危險的!
- 穩定性:
- API:API 通常更穩定,因為是由網站持有者 (官方提供)
- 爬蟲:爬蟲會受到網站結構變化而影響,一支爬蟲的維護成本會比較高!
- 合法性:
- 總之,API 是一個長久之計,所以通常如果需要「外部資料分析」,資料分析師也會優先考慮用 API 來蒐集外部數據。除此之外,比如說跟第三方廠商合作的資料,可能也會用 API 來做,所以學習 API 會比爬蟲更實用!!
核心觀念講解:API 是什麼?懂了之後有多好用?
對資料分析師而言,什麼是 API?
- 數據源頭:XX 電商,擁有很多顧客數據
- Lisa 身為資料分析師,想要取用 XX 電商的數據源頭來分析資料
- API:簡單來說,是交換數據的管道。把 XX 電商的顧客數據,都打包在一起,只要 Lisa 呼叫,就會把資料傳過來
- 這時候,你可能會想問說,那為什麼不直接給我 excel 或是 csv?
- 因為那麼多 excel 或是 csv,不好維護,API 可以受 XX 電商控制,保持資料的乾淨整潔!
- 這就是為什麼資料分析師在取用第三方數據的時候,必須學會 API 的原因!!
API 的好處:2 大資料分析師必知的優點
了解 API 的重要性不僅是資料分析師的基本技能,還有其他優點:
- 資料取用便利、統一、乾淨: API 可以打包不同種類的數據,比如說,今天我們可以透過 API,將客戶的數據個別給他,讓他們可以呼叫到自己的 CRM 平台中,讓每個人取用數據都變得更容易!
- 自動載入數據,優化工作流程: 了解 API 可以幫助你串接不同源頭的數據,建立自動化的工作流程。例如,你可以設定 API 來自動儲存 GA4 的數字,無需手動載入這些數據!
總結來說,了解 API 跟使用 API,可以讓更多人很好取用數據,還可以自動化自己的數據工作流程。這個能力對於資深數據分析師很重要,而如果你需要跟工程師或是外部合作,這也是必要能力之一!
外部資料分析案例:使用 Google Map API 找到理想店家!
步驟一:API 的申請、爬 Google Map 店家資料、搞懂 API 限制
- 在這個實際案例中,我會用 Google Map API 來取得店家資料,並且存成可以分析的資料形式 (csv)
- 首先,在這之前,需要申請 Google Map API,這個過程可以讓你了解 Google 如何把 API 授權給我們
- 步驟一:申請帳號,付款方式備妥 (不需付費,只是需要填寫付款資訊)
- 步驟二:申請 Google Map API 金鑰
- 這邊有篇文章很仔細,可以參考
- API 限制:這邊可以看到 Google Map API 的限制,我們可以先用免費的方式來使用
步驟二:從 API 裡面整理出資料欄位
- 獲得 API 權限後,就可以用 API 進行資料蒐集了!包括店家名稱、地址、評分等資訊
步驟三:設定需求、取得理想店家名單!
- 最後,設定分析需求:我今天想要找到我附近的診所,方圓 5 公里內
- 把需要的欄位寫出來,最後存成 csv 檔案,這就會成為我們資料分析的 raw data 啦!!
程式碼分享:
- 如果想要在 Google 雲端運行,可以參考我的說明文章:Google Colab:以 Python 3 分鐘完成資料匯入及分析 (含範例檔案)
- 我的程式碼可以在 Google colab 上運行!完全不需要下載任何東西,只要有 Google Drive 就可以運行程式碼囉!
# 安裝必要的套件
!pip install -U googlemaps
# 輸入你的Google Maps API金鑰
api_key = "你的 API 金鑰"
# 使用googlemaps套件建立API客戶端
import googlemaps
gmaps = googlemaps.Client(key=api_key)
import pandas as pd
import time
# 定義一個函數來獲取附近的診所
def get_nearby_clinics(api_key, location, radius, keyword):
gmaps = googlemaps.Client(key=api_key)
clinics = []
clinics_result = gmaps.places_nearby(
location=location,
radius=radius,
keyword=keyword
)
for clinic in clinics_result['results']:
name = clinic['name']
address = clinic['vicinity']
rating = clinic.get('rating', 'N/A')
clinics.append([name, address, rating])
return clinics
# 輸入您的位置坐標 (經度和緯度)
location = "25.041911156801188, 121.55765081371717"
radius = 5000 # 5公里範圍
keyword = "clinic" # 您可以根據需求更改關鍵詞
clinics_data = get_nearby_clinics(api_key, location, radius, keyword)
# 將結果轉為Pandas DataFrame
df = pd.DataFrame(clinics_data, columns=['診所名稱', '地址', '評分'])
# 顯示前幾個結果
print(df)
from google.colab import files
# 儲存結果為CSV檔案
df.to_csv('clinics.csv', index=False)
# 下載CSV檔案到本地計算機
files.download('clinics.csv')
結論:爬蟲及 API 只是取得數據的開始,後續的資料使用及分析才是關鍵!
- 總結來說,如果想成為進階資料分析師,使用 API 是一個滿重要的技能~至少要懂他的邏輯,這樣才不會其他合作單位跟你要 API 的時候,不知道那是什麼 XD
- API 取得數據其他很棒,載下來的數據是結構化的,而且相比爬蟲,不需要太艱深的程式語言基礎
- 但是,透過今天的案例,你應該也發現了!不論 API 或是爬蟲都一樣,他都只是「取得我想要的資料源頭或是欄位」,數據分析真正的關鍵在於後面的分析,以及有價值的結果跟行動方案!!
- 如果你發現自己缺少數據分析的經歷、實作經驗,我推出的【STEP 數據分析師轉職培訓班】中,會一步一步帶你從了解部門領域知識、到工具應用、學中做,做出個人數據專案,最後透過領域面試的撇步,挑到理想數據工作,有興趣的話,一定要預約我的諮詢會議,確認我是否能幫到現在的你!
Pingback: [數據分析#0] 數據分析文章導覽 (累計 73 篇!持續更新中) - Lisa Wu 理紗豆苗工作室