圖片來源:https://unsplash.com/photos/PeUJyoylfe4
終於來到鐵人賽的最後一天了! 在旅程的最後,讓我們一同回顧這30天經歷的總總吧!
我們一開始從HTML開始,介紹了許多HTML的標籤和屬性,後來加上CSS,讓我們的網頁穿上華麗的衣裝,最後,利用上述所學的技巧,打造自己第一個個人履歷網頁!
Python是很適合新手學的程式語言,也是爬蟲專案主要使用的程式語言。在基本介紹這幾天,我教了環境架設、變數、容器、流程控制、迴圈和函數等基礎的Python語法,希望大家學完後,對Python有多一點的認識,甚至可以用Python寫一些小程式!
介紹兩個常用的爬蟲套件,Requests和BeautifulSoup,並使用這兩個套件取得PTT C_chat版的文章標題,不知道大家還記得多少呢?
C_chat版的方法用在八卦版馬上就出了問題,才發現要加上cookie來解決,後來還教了session和post的概念,省去每次都加上cookie的麻煩,這個專案教的都是爬蟲相當重要的觀念,非常推薦大家去看這一段。
這是我們第一次遇到動態網頁,使用Selenium這個套件,讓瀏覽器自動化模擬使用者的行為,像是輸入帳密、點擊按鈕、滾輪下滑等等。除了爬取貼文的文章外,還補充了下載圖片的教學哦~
KKBOX風雲榜也是動態網站,但我們不使用Selenium,因為這個網站是使用名為AJAX的技術動態載入資料的,所以我們直接透過API來取得資料就好了!
我們呼叫台灣證券交易所的API取得股市資料,但因為有次數限制,所以先將資料整理成Pandas的DataFrame型態,再存成.csv
檔。繪製趨勢圖前再匯入預先存好的股市資料,然後用兩種工具繪製趨勢圖 - Matplotlib和Pandas。
在小明的故事中,我們幫他寫了一個天氣小助理,從氣象資料API取得今日的天氣狀況,並透過LINE Notify傳送訊息給他,最後一天,我們將這個專案部署到Heroku雲端平台,並使用Heroku Scheduler這個工具每天固定早上六點執行程式!
2021 IT鐵人賽30天完賽!!! ??
想報名鐵人賽的理由,其實是因為去年看到學長參加鐵人賽的文章後,覺得這個活動很有意義,於是參加鐵人賽成為我這一年的目標之一,因為我當時還很菜什麼都不會,所以我一直在思考我可以寫些什麼,同時一直在學習新東西。一年過去了,現在我完成了IT鐵人賽,不僅達成了我的目標,同時也見證了這一年的努力沒有白費!
我在開賽前其實就做了相當多的準備,大約開賽一個月前決定鐵人賽的主題,前兩個禮拜思考專案內容和驗證是否可行,前一個禮拜就開始寫文章。鐵人賽過程中也有經歷了一些狀況:像是開賽沒多久我就去打疫苗了,打完後的第二天非常不舒服,但還是勉強起來完成發文。在寫Python基本介紹那部分時,發現有好多東西想寫,因此有壓縮到後面的內容,不知道有沒有人發現實際的時程跟第一天規劃的不一樣呢ww。
順帶一提,發文已經成為我每天早上固定的習慣了,搞不好明天早上還會忘記已經完賽還爬起來發文呢?
開賽後,我最常被人問的問題是:「幹嘛參加鐵人賽? 寫文章感覺很浪費時間ㄟ。」的確,或許是因為我對自己的標準比較高,經常要煩惱該怎麼寫才會讓讀者比較好懂,每天大概要花一個早上寫文章。還有其實我本來沒打算寫這麼多的,但後來不小心就越寫越多,你如果仔細去看每一篇文章,都有3000左右個字哦(有的甚有5000個字!),你想,3000個字*30天 = 90000個字,還不包括專題程式碼,說不辛苦肯定是騙人的。
但是,我不認為這是浪費時間。我很認同我的老師講過的一句話:「當你能夠教會別人一項技術時,才算真正學會這項技術。」我在鐵人賽的過程中確切地體認到這件事,我原本以為我對爬蟲已經很精通了,沒想到要寫文章時,才發現有些觀念自己並不是那麼熟悉,甚至有些觀念原本都搞錯了! 正是因為要教會別人,才會去釐清自己的觀念,也才會發現錯誤所在。如果只是會寫程式的人是做不到這一點的。
還有一個原因,其實我很多技術也是看過去IT鐵人賽其他人寫的文章學的(包括爬蟲也是)。如果過去那些人覺得浪費時間而不寫的話,我也沒機會看到這些文章了。正所謂「取之於社會,用之於社會」,不能只想從社群中獲取好處,自己有能力時,就應該盡自己的能力回饋給社群,以延續良好的社群風氣。
心得寫的有點多,最後感謝IT邦幫忙舉辦IT鐵人賽,感謝每個一同走過30天旅程的人,感謝每個看到最後的各位,我們有緣再見。
我想了解一下各位的學習狀況和意見回饋,並用於改善未來的文章方向,只需要花2~3分鐘即可完成,看完文章的人麻煩幫我填一下調查問券,感謝~
本系列文章以及範例程式碼都同步更新在GitHub上。除此之外,這系列文章之後也會放在我的部落格上,喜歡的話也別忘了給我一個鼓勵哦,你的支持是我創作最大的動力~
[2022/02/06更新] 寒假終於有時間將文章轉移到部落格上了,抱歉讓各位等那麼久QAQ