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

更新於 發佈於 閱讀時間約 7 分鐘

上一篇我們已經介紹過Google Colab的基本用法,建議可以先行閱讀「【Google Colab Python系列】Colab平台與Python如何擦出火花?」,進行基本概念與環境的建置再進行下一步會比較容易進行學習。

雖然網路上已經提供非常多的股市資訊,但各個網站可能都零零散散,難免我們得自行進行資訊整合來抓取網頁資料進行分析,而Python語言的特性就是早期具有非常多的資料科學家使用的一門語言,故統計、分析、資料解析的套件非常多,我們只要採用幾個重要的套件就能夠快速的抓取我們需要的資料進行分析。

這次主要介紹兩個重要的套件,分別是「BeautifulSoap」與「Pandas」,這兩個工具主要瞄準的目標不太相同,「BeautifulSoap」主要針對HTML、XML格式進行解析,讓我們可以更快的抓到我們需要的資料,等於是幫我們進行第一道關卡的過濾,而第二道關卡資料分析的過程就需要透過「Pandas」來幫我們進行了,就相當於資料 → 資訊 → 知識的轉化過程。

圖片來源

撒網目標: Goodinfo!

我們已經很確定要抓取的網頁資訊就是在「經營績效」這個頁面,因此第一步就是先進到這個畫面之後,將網址複製起來。

圖片來源

得到網址為:https://goodinfo.tw/tw/StockBzPerformance.asp?STOCK_ID=3231

我們得到網址之後,首先就要先設法將網頁內容抓取,我們可以用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」歡迎自行取用。

如何使用請參閱「【Google Colab Python系列】Colab平台與Python如何擦出火花?」。

------------------------------------------------------------------------------------------------

喜歡撰寫文章的你,不妨來了解一下:

Web3.0時代下為創作者、閱讀者打造的專屬共贏平台 - 為什麼要加入?

歡迎加入一起練習寫作,賺取知識!

留言
avatar-img
留言分享你的想法!
avatar-img
阿Han的沙龍
129會員
283內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
阿Han的沙龍的其他內容
2025/01/29
🤔 簡單且靜態就足夠了? 相信我們在開發Python應用程式的過程中, 常常會借用Enum來定義我們可能的選項, 就像顏色紅、綠、黃會有這樣的結構: class Color(str, Enum): RED = 'red' GREED = 'green' YELLOW = 'yel
Thumbnail
2025/01/29
🤔 簡單且靜態就足夠了? 相信我們在開發Python應用程式的過程中, 常常會借用Enum來定義我們可能的選項, 就像顏色紅、綠、黃會有這樣的結構: class Color(str, Enum): RED = 'red' GREED = 'green' YELLOW = 'yel
Thumbnail
2025/01/08
當我們的系統發展到一定程度時, 難免會面臨到正式上線的問題, 要如何讓維運更加簡易呢? 尤其隨著複雜的客製化配置的出現時, 我們應該如何有效的管理, 甚至驗證配置是否如預期資料型態、格式…, 而正好 pydantic 可以滿足這樣的需求, 就讓我們來看看怎麼使用吧! 需安裝的套件 pip i
Thumbnail
2025/01/08
當我們的系統發展到一定程度時, 難免會面臨到正式上線的問題, 要如何讓維運更加簡易呢? 尤其隨著複雜的客製化配置的出現時, 我們應該如何有效的管理, 甚至驗證配置是否如預期資料型態、格式…, 而正好 pydantic 可以滿足這樣的需求, 就讓我們來看看怎麼使用吧! 需安裝的套件 pip i
Thumbnail
2025/01/02
要如何使用unicorn啟動多個FastAPI服務, 歡迎參考我們的「【💊 Python的解憂錦囊 - FastAPI】如何啟動多個Workers」。 當我們試著設計帶入模組化時… 我們在「【💊 Python的解憂錦囊 - FastAPI】使用 lifespan 來共享資料與管理生命週期
Thumbnail
2025/01/02
要如何使用unicorn啟動多個FastAPI服務, 歡迎參考我們的「【💊 Python的解憂錦囊 - FastAPI】如何啟動多個Workers」。 當我們試著設計帶入模組化時… 我們在「【💊 Python的解憂錦囊 - FastAPI】使用 lifespan 來共享資料與管理生命週期
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
教大家如何使用 google colab 讀取雲端硬碟中的資料
Thumbnail
教大家如何使用 google colab 讀取雲端硬碟中的資料
Thumbnail
在這一課中,我們將學習如何在Python中使用beautifulsoup4和requests模塊進行基本的網頁爬蟲。 首先,你需要安裝beautifulsoup4模塊,如果你還沒有安裝它的話:
Thumbnail
在這一課中,我們將學習如何在Python中使用beautifulsoup4和requests模塊進行基本的網頁爬蟲。 首先,你需要安裝beautifulsoup4模塊,如果你還沒有安裝它的話:
Thumbnail
Google Colab是一個基於雲端的Python開發環境,提供免費的CPU和GPU資源,讓用戶可以在網頁瀏覽器中運行和編寫Python程式。它具有強大的協作功能,可以與他人共享和編輯程式碼。Google Colab支援Jupyter筆記本,並提供預裝的Python套件,方便進行數據分析、機器學習
Thumbnail
Google Colab是一個基於雲端的Python開發環境,提供免費的CPU和GPU資源,讓用戶可以在網頁瀏覽器中運行和編寫Python程式。它具有強大的協作功能,可以與他人共享和編輯程式碼。Google Colab支援Jupyter筆記本,並提供預裝的Python套件,方便進行數據分析、機器學習
Thumbnail
上一篇我們已經介紹過Google Colab的基本用法,建議可以先行閱讀「【Google Colab系列】台股分析預備式: Colab平台與Python如何擦出火花?」,進行基本概念與環境的建置再進行下一步會比較容易進行學習。 雖然網路上已經提供非常多的股市資訊,但各個網站可能都零零散散,難免我們得
Thumbnail
上一篇我們已經介紹過Google Colab的基本用法,建議可以先行閱讀「【Google Colab系列】台股分析預備式: Colab平台與Python如何擦出火花?」,進行基本概念與環境的建置再進行下一步會比較容易進行學習。 雖然網路上已經提供非常多的股市資訊,但各個網站可能都零零散散,難免我們得
Thumbnail
其實要為專案建立操作介面的方式很多,除了網頁之外,還能另外寫個專門的手機 APP 連線,或是乾脆升級算法,讓我們能隨口喊一聲「嘿OO!」就搞定,不過⋯
Thumbnail
其實要為專案建立操作介面的方式很多,除了網頁之外,還能另外寫個專門的手機 APP 連線,或是乾脆升級算法,讓我們能隨口喊一聲「嘿OO!」就搞定,不過⋯
Thumbnail
第一個實戰,我們就先從如何連接自己的網站開始,當我們輸入「部落格」時,機器人就會輸出一個表格,只要點選「馬上觀看」,我們就可以直接連接到自己的部落格,此功能其實也可以運用在連接粉專或是其他想要觀看的網站唷!! Flex Message 實際製作教學 選擇模板 更改圖片 修改內容物 修改底部box
Thumbnail
第一個實戰,我們就先從如何連接自己的網站開始,當我們輸入「部落格」時,機器人就會輸出一個表格,只要點選「馬上觀看」,我們就可以直接連接到自己的部落格,此功能其實也可以運用在連接粉專或是其他想要觀看的網站唷!! Flex Message 實際製作教學 選擇模板 更改圖片 修改內容物 修改底部box
Thumbnail
事情是這樣的,這個網站是用WordPress建置,本來放在GoDaddy虛擬主機上,當時的方案簽了三年,在大約一年半的時候,我決定把網站搬到SiteGround上。為了不讓GoDaddy的主機空轉,剛好我也想做些Side Projects,試著在網站上建立數據儀表板,GoDaddy的主機剛好可以拿來
Thumbnail
事情是這樣的,這個網站是用WordPress建置,本來放在GoDaddy虛擬主機上,當時的方案簽了三年,在大約一年半的時候,我決定把網站搬到SiteGround上。為了不讓GoDaddy的主機空轉,剛好我也想做些Side Projects,試著在網站上建立數據儀表板,GoDaddy的主機剛好可以拿來
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News