【Google Colab Python系列】該如何設計自己的爬蟲來抓取Html資料?

閱讀時間約 6 分鐘
上一篇我們已經介紹過Google Colab的基本用法,建議可以先行閱讀「【Google Colab Python系列】Colab平台與Python如何擦出火花?」,進行基本概念與環境的建置再進行下一步會比較容易進行學習。
雖然網路上已經提供非常多的股市資訊,但各個網站可能都零零散散,難免我們得自行進行資訊整合來抓取網頁資料進行分析,而Python語言的特性就是早期具有非常多的資料科學家使用的一門語言,故統計、分析、資料解析的套件非常多,我們只要採用幾個重要的套件就能夠快速的抓取我們需要的資料進行分析。
這次主要介紹兩個重要的套件,分別是「BeautifulSoap」與「Pandas」,這兩個工具主要瞄準的目標不太相同,「BeautifulSoap」主要針對HTML、XML格式進行解析,讓我們可以更快的抓到我們需要的資料,等於是幫我們進行第一道關卡的過濾,而第二道關卡資料分析的過程就需要透過「Pandas」來幫我們進行了,就相當於資料 → 資訊 → 知識的轉化過程。

撒網目標: Goodinfo!

我們已經很確定要抓取的網頁資訊就是在「經營績效」這個頁面,因此第一步就是先進到這個畫面之後,將網址複製起來。
我們得到網址之後,首先就要先設法將網頁內容抓取,我們可以用Python內建的request套件去請求目標網址。
import requests
res = requests.get('<https://goodinfo.tw/tw/StockBzPerformance.asp?STOCK_ID=3231>', headers = headers)
res.encoding = 'utf-8'
res.text
但非常不幸的第一步將遇到一個狀況就是我們被誤以為機器人,因此沒辦法請求任何資訊了!
怎麼辦呢? 主要是許多網站都會檢查header是否為user-agent來判定為機器人或者瀏覽器行為,此時我們來觀察一下瀏覽器操作的行為,並試圖模擬一下。
回到頁面,我們按下F12打開瀏覽器開發者工具列,切到Network,接著按下頁面重新整理之後,蒐集目前頁面網路傳輸資訊。
接著在Headers裡面找到user-agent欄位並複製起來。
接著我們回到Colab進行程式開發,將headers帶入。
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'
}
res = requests.get('<https://goodinfo.tw/tw/StockBzPerformance.asp?STOCK_ID=3231>', headers = headers)
此時執行後我們就能夠成功抓到內容囉!

網頁解析的利器: BeautifulSoap

首先我們一樣開始F12開發者工具,並且點選左下角的「Select an element…」來獲取指定區塊,今天我們抓取的目標是獲利指標,因此就將滑鼠移到該區塊。
接著我們回到Colab撰寫程式抓取目標值。
from bs4 import BeautifulSoup
bs = BeautifulSoup(res.text, 'html.parser')
data = bs.select_one('#tblDetail')
成功抓到區塊資料如下:

資料分析的利器: Pandas

成功抓取資料之後,由於我們的目標區塊是表格,而Pandas正好非常擅長處理表格資料,因此我們可以將目標資料丟給Pandas進行分析處理。
import pandas
dfs = pandas.read_html(data.prettify())
node = dfs[0]
print(node)
成功抓取目標節點。
接著我們可以透過.head()的方式來瀏覽資料集。
下一個章節我們再來介紹如何取得我們要的EPS、殖利率…等關鍵指標進行程式運算,看到此篇文章的你不妨動手試試看,相信成功之後會非常有成就感,才能有信心往下一道關卡邁進。

結語

Python不愧是進行資料分析的最佳利器,簡單的透過幾個套件就能夠快取爬取我們要的網站資料,並且進一步進行資料統計與分析,難怪資料科學家們都喜愛這套程式語言,我們也要跟上趨勢學習如何抓取、過濾、分析資料,善用各式工具幫助我們提升效率。
為什麼會拿來分析股市資訊呢? 起心動念主要源自於市面上太多各式各樣的APP,但這些APP都有一些共同點,就是進階功能皆需收費,對於小資族來說也是一筆不小的負擔啊! 因此我們既然已經有工具及觀念,何不自行打造專屬的資料分析器呢?
今天的範例都在這裡「📦 goodinfo_example.ipynb」歡迎自行取用。
------------------------------------------------------------------------------------------------
喜歡撰寫文章的你,不妨來了解一下:
歡迎加入一起練習寫作,賺取知識!
為什麼會看到廣告
95會員
234內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
留言0
查看全部
發表第一個留言支持創作者!
你可能也想看
Google關鍵字廣告應該是你第一支Google廣告本文深入探討Google關鍵字廣告的運作原理、不同模式及應用策略,幫助企業精準觸達目標受眾,提升品牌曝光和轉換率。
Thumbnail
avatar
Caties Time
2024-06-17
在 google Colab 讀取雲端硬碟中的資料教大家如何使用 google colab 讀取雲端硬碟中的資料
Thumbnail
avatar
愛看電視的小上進
2024-01-24
免費開源的語音辨識功能:Google Colab + Faster Whisper本文提供如何使用 Google Colab 結合 Faster Whisper 來提升語音辨識速度與準確性,包含安裝指南與使用方法。探索如何將語音轉換為文本,並對檔案進行不同格式的輸出。
Thumbnail
avatar
Let's Write
2024-01-17
免費開源的語音辨識功能:Google Colab + Whisper large v3本篇筆記了如何使用Google Colab和OpenAI的Whisper Large V3進行免費且開源的語音辨識。涵蓋從基礎設定到實際運用的步驟,適合初學者和技術愛好者輕鬆學習語音辨識技術。
Thumbnail
avatar
Let's Write
2024-01-13
Google Colab 介紹Google Colab是一個基於雲端的Python開發環境,提供免費的CPU和GPU資源,讓用戶可以在網頁瀏覽器中運行和編寫Python程式。它具有強大的協作功能,可以與他人共享和編輯程式碼。Google Colab支援Jupyter筆記本,並提供預裝的Python套件,方便進行數據分析、機器學習
Thumbnail
avatar
何誠殷
2023-08-28
Google品質評分者指南的最新資訊:更注重呈現實際體驗的搜尋結果內容作者:MTMG SEO 權重評分指標增加『經驗』 相信很多seo專家都熟悉了E-A-T的概念,這是一個用於評估搜尋引擎是否提供有用和相關數據的系統。但一般人真的會覺得到他們在Google搜尋出來的結果真的是值得信賴的嗎? 如果你是一個非常注重提升自然流量的企業品牌,那你一定要了解接下來文章中介紹的G
avatar
數位知識百科
2023-01-19
Google廣告費用有哪些?本篇文章一次看清楚!教你找到最適合自己的行銷方式 不管使用Google哪種廣告或是在Youtub上投放廣告,我們都要找到適合自己品牌的廣告方式,本篇文章將介紹Google廣告費用有哪些,現在就一起看下去吧! 一、下廣告之前該注意的事: 其實依照我們下廣告的習慣,一個新的廣告活動通常剛下時都不會在第一天開太多預算,因為廣告第一天剛下時他會需要數據學
avatar
李建佑
2021-12-04
[Google sheet教學#2] 如何抓上櫃公司股價、自動更新匯率的方式,簡單的文字處 圖1,圖片引用自pexels 2021/07月第三篇付費訂閱文 大綱 1.製作始於自己的投資組合表需要哪些東西? 2.如何抓取上市、上櫃公司股價資訊,有哪些項目可以用? 這系列是付費訂閱文,後面還會有的內容有,有興趣的朋友可以參考,是以完全對google sheet 新手從0開始的基礎教學,每篇教
Thumbnail
avatar
威利財經生活隨筆
2021-07-26
【Google Ads教學】如何申請Google Ads帳號?︱免費獲得$400宣傳費用的上次小K向大家介紹了Google Ads是甚麼,亦了解了我們可以如何透過投放廣告來提升我們的曝光率,這次小K便想教大家一個既可以節省成本,又可以宣傳自己的方法,在Google Ads裡面投放廣告的時候,我們首先需要申請一個Google Ads的帳號,如果你本來已經有Google帳號的話,那麼你就可以
Thumbnail
avatar
小K投資理財之路
2020-12-23
Google Game Builder 的誕生簡介 前陣子,Google實驗室Area120釋出了一個「製作遊戲」的遊戲,名字也很簡單就叫「Game Builder」。主要的用戶是video game的編導,方便他們以拖拉卡片的型式來開發遊戲,做一個game play的驗證用…
Thumbnail
avatar
SharpWriter(周乃宏)
2019-07-05