當前文章

【Python】 資料爬蟲入門 - 貨幣價值實時抓取

導讀


Python 語言作為網路資料爬蟲好工具,在理解 Python 的 list 資料結構後,我們已經有能力實作入門款的自動資料抓取程式,將你感興趣的資料抓下來進行保存、分析。


以下我們以抓取「比特幣(Bitcoin)」的實時價格作為入門目標。


目標


階段性目標


  • 使用 requests 套件網站資料下載
  • 數值格式的處理(float, json)
  • 使用 if 函式進行判斷

  • 實作步驟


    輸入以下程式碼資料抓取前置作業:
    import requests
    
  • 此處引用 requests 套件進行 url 資料載入
  • 以 jupyter-notebook 作為示範,此段落的程式碼截圖。




    接著要找尋提供比特幣時價的平台,此處教學選用coindesk.com提供的比特幣查詢API:
    response = requests.get("https://api.coindesk.com/v1/bpi/currentprice.json") 
    data = response.json()
    bc = locale.atof(data["bpi"]["USD"]["rate_float"])
    
  • reponse變數儲存從比特幣查詢API取得的json資料。
  • python內對json資料格式的處理,我們可以借用.json()函式做轉換。
  • 從資料欄位中的["bpi"]["USD"]["rate_float"]取出比特幣價格。
  • 以 jupyter-notebook 作為示範,此段落的程式碼截圖。




    print("比特幣當前的價格為:USD$", bc)
    
  • 將取得的比特幣價格顯示在螢幕上。

  • 以上已經讓這個資料爬蟲程式取得我們的目標「比特幣價格」,若想持續追蹤不斷更新的比特幣價格,則可以使用「for loop」或「while loop」進行,將歷史價格繪製為線圖,可參見【Python】 資料爬蟲及線圖繪製 - 線性趨勢圖


    本篇剩餘的內容,則稍微改寫本程式,做成一個簡易互動的「猜比特幣價格」程式,簡單的加上 if條件判斷及絕對值數學函式abs():
    guess = float(input("猜猜目前比特幣的價格是多少?(單位:美元) "))
    if guess != bc:
        diff = abs(guess - float(bc))
        print("實際上比特幣的價格為 ", bc,"美元,和你預估的差 ", diff, "美元")
    else:
        print("賓果!就是 ", bc, "美元")
    

    以 jupyter-notebook 示範,此段落程式碼的執行結果。

    沒有留言:

    張貼留言

    Suz 數位式 僅供學術交流使用,版面設計原始提供者: Templateism 維護修改者: Suz | Google Blogger Copyright © 2014-2021

    主題圖片來源:richcano. 技術提供:Blogger.