跳到主要內容

發表文章

目前顯示的是有「網頁爬蟲」標籤的文章

[2021 IT鐵人賽] Day 29:專案07 - 天氣小助理03 | Heroku雲端平台

圖片來源: https://www.lohaslife.cc/archives/18537 昨天最後遇到的問題是,目前電腦都是在我們的電腦上執行,而且是手動觸發的,有沒有辦法自動化的完成這個任務呢? 答案是有的,今天將接續前兩天的內容,將天氣小助理的專案部屬到Heroku雲端平台上,建議讀者先看完前兩天的文章再來看這篇哦! Heroku Heroku 是一個平台即服務(PaaS)的雲端平台,支援多種程式語言,包括Ruby、Node.js、Java、Python…。如果是第一次聽到雲端平台的人,可以將它想像成有一台遠端且永遠都是開機狀態的電腦,你可以將你的程式透過網路上傳至這台電腦,並由它幫你執行程式。 接下來教你如何將專案部屬到Heroku上,在此之前要先將天氣小助理的專案完成,這裡有 專案完整原始碼 提供參考。 安裝Git Git是一個分散式的版本控制系統,平常除了幫助開發者進行版本控制外,也要透過Git將專案推送到Heroku的Git Repository,進行專案的管理以及部署。 到 Git官網 ,根據作業系統安裝最新版本的Git。 安裝完成後,在CMD輸入 git --version ,有出現版本號碼就表示有安裝成功。 安裝Heroku CLI Heroku利用Git部署專案,並提供了CLI(Command-Line Interface),透過指令操作Heroku雲端平台,讓部署流程更加容易。 來到 Heroku Dev Center ,點下方的「The Heroku CLI」。 找到「Download and install」,根據你的作業系統做安裝。 下載的是一個執行檔,執行後依照步驟安裝即可。 安裝完成後,在CMD輸入 heroku 驗證是否安裝成功。 註冊Heroku帳號 但是要有帳號才能進行部署,所以先回到Heroku Dev Center,點擊「Sign ...

[2021 IT鐵人賽] Day 28:專案07 - 天氣小助理02 | LINE Notify

圖片來源: https://3c.ltn.com.tw/news/45392 現在已經是人手一機的時代了,基本上大家每天起來後一定會做的事情就是打開手機檢查訊息,其中LINE又幾乎是每個人都有的通訊軟體,比起將訊息印在終端機或存成txt檔,傳送LINE訊息肯定是更方便且更容易接收訊息的選擇。今天就來使用LINE Notify,將氣象資料用LINE傳給我吧! LINE Notify LINE Notify是LINE一個特殊的官方帳號,是一個專門用來推送訊息的LINE機器人,特點是只要去申請一個服務提供者,就會以LINE Notify的帳號主動推送訊息給使用者! 而且最大的優點在於,他不像LINE Bot要收費,LINE Notify推送訊息是 完全免費 的! 適合用於傳送客戶通知或現有服務的錯誤訊息。 底下就來教你如何使用LINE Notify。 來到 LINE Notify 網頁,登入你的LINE帳號。 登入後,點「個人頁面」。 點發行存取權障底下的「發行權杖」。 輸入權杖名稱(通常是填功能名稱,像是 天氣小助理 ),底下選擇要推送訊息到哪個聊天室,如果只給自己看的話就選擇「透過1對1聊天接收LINE Notify的通知」,填完後按「發行」。 發行後顯示權杖, 請務必將這個權杖記住 ,不然離開這頁後就不會再顯示囉! 畫面上會出現目前申請的權杖,如果未來這個權杖不小心外流了,可以來這裡解除。 傳送測試訊息 取得權杖後就可以試著傳送訊息了! LINE Notify使用POST的方式將權杖以及訊息送到LINE Notify的API,接著再將訊息傳給這個權杖所綁定的使用者。 程式碼如下: import requests def line_notify (): token = "你的權杖...

[2021 IT鐵人賽] Day 27:專案07 - 天氣小助理01 | 氣象資料API

圖片來源: https://www.epochtimes.com/b5/18/1/5/n10026856.htm 我先來講個故事吧~ 故事的主角小明,今年30歲單身,一個人住在租的套房裡,每天工作加班累的半死,回家馬上倒頭就睡,隔天早上起來又急急忙忙出門上班了,根本沒有時間看明天的天氣預報。 一直以來都沒有什麼問題,直到某一天發生一件不幸的事,小明下班時外面下著大雨,自己也沒有帶傘,一查才發現原來今天的下雨機率高達90%!! 小明此時覺得很氣惱,心想:如果有人可以在出門前提醒我帶傘就好了…。 於是他將煩惱告訴了他的好友,也就是你,身為工程師的你很同情他,沒有女朋友已經很可憐了,竟然還要淋雨回家,因此你決定寫一個程式來幫助小明!! 專案構想 小明的需求是每天早上出門前自動通知天氣資訊,因此專案的架構會長這樣:每天早上6點執行Python程式,由程式取得氣象資料後,經過一些處理後,再推送訊息給小明。那因為LINE是我們很常用的通訊軟體,所以就使用LINE Notify推送訊息給小明,如此一來小明只要早上看LINE就知道今天的天氣資訊了! 氣象資料API 首先,專案最重要的東西就是氣象資料,而且要每天更新,又有涵蓋很多地區。好消息是,中央氣象局提供的氣象資料API就有這些特點,我們就是要使用這個。 打開 中央氣象局氣象資訊API文件 ,底下列出非常多API,而我們要用的是第一個(一般天氣預報-今明 36 小時天氣預報)。 點開後,可以看到API的所有參數,其中「Authorization」這一項是 必填 的,這是開放資料平台會員的授權碼,要有這個授權碼才能使用API,接著就要來講怎麼取得這個授權碼。 會員授權碼 先到 中央氣象局網站 註冊一個新會員,點擊「加入會員」,填寫一些基本資料後就可以成為會員了,請記住自己的帳號密碼。 再來到 氣象開放資料平台 ,登入你剛才註冊的帳號。 ...

[2021 IT鐵人賽] Day 26:專案06 - 股市趨勢圖03 | Matplotlib、Pandas繪圖

圖片來源: https://unsplash.com/photos/mcAUHlGirVs 前兩天已經將各股日成交資料存成 .csv 檔了,接著就來利用這些資料繪製出趨勢圖吧~ 匯入Pandas 還記得前天我們將Pandas的DataFrame匯出成csv只靠一個函數嗎? 現在反過來將csv匯入成DataFrame一樣也只需要一個函數哦! 是不是超好用呢😎 試著將前天匯出的三種檔案 .csv 、 .xlsx 、 .html 都匯入成DataFrame看看。匯入的參數大致上和匯出一樣,頂多就編碼要注意一下。 import pandas as pd # 讀取csv df1 = pd.read_csv( "./month_stock.csv" , encoding= "big5" ) print (df1) # 讀取excel df2 = pd.read_excel( "./month_stock.xlsx" ) print (df2) # 讀取html df3 = pd.read_html( "./month_stock.html" , encoding= "utf8" ) print (df3) 既然可以匯入csv了,就可以用前天儲存的csv檔繪製趨勢圖了! 繪製趨勢圖我會介紹兩種方法: Matplotlib 和 Pandas 。 Matplotlib繪圖 Matplotlib 是Python繪製數據圖的套件,待會就要用這個套件將股價繪製成趨勢圖。 Anaconda已經有 matplotlib套件 了,沒有的話一樣用pip下載。 pip install matplotlib 載完後就引進你的專案中,但因為matplotlib太長了,通常會減寫成 plt 。 import matplotlib.pyplot as plt 再來,篩選出畫趨勢圖需要的資料,要 日期 、 最高價 、 ...