【筆記】BeautifulSoup 4 實作:環境架設跟基本架構

更新於 發佈於 閱讀時間約 4 分鐘
BeautifulSoup 4 是一個Python的模組,用來解析HTML和XML的文本,並將內容轉換成Python可作用的對象,我們以HTML為對象來獲取需要的資訊,先從頁面上的值抓起。

要使用Beautiful Soup 4,得先安裝套件,打開終端機:

pip install beautifulsoup4

安裝完畢後在編譯器上導入套件,多數情況下,會跟requests一起用:

from bs4 import BeautifulSoup
import requests​


用requests從網站獲取網頁內容,再使用BeautifulSoup解析HTML的內容,就是俗稱的網路爬蟲,可以根據自身的需要解析一段數據或是整頁網頁的內容,至於可以解析哪些內容,這個就牽扯到HTML結構了,根據個人非常不完整且粗略的理解,大致上長下面這樣:

raw-image

有一個分層的概念,會比較知道需要解析什麼內容。


身為一個數字貨幣交易所的員工,最常使用的數字貨幣就是USDT了,它是美元的穩定幣,跟美元匯率的掛鉤,於是想做一段程式知道各交易所的USDT/TWD跟銀行美元兌台幣的價格,可以抓到價格的方法有三種:

  1. 打API,但這個需要看該網站有沒有開放API,如果沒有或是需要比較繁瑣的註冊的話,就會比較麻煩一點,好處是打API比較穩定,不會因為網站頁面改版需要重抓元素。
  2. 用Selenium webdriver無頭模式抓價格欄位的價格,但這種方式會需要啟動瀏覽器,即便是無頭瀏覽器還是會彈一下。
  3. 用BeautifulSoup爬,透過requests網站內容,再進行解析,獲取我們要的資訊,這個就是本篇要做的事情了。


首先我們要獲取網頁的HTML內容:

# 台灣銀行牌告匯率網頁
url = "https://rate.bot.com.tw/xrt?Lang=zh-TW"
# 定義一個變數為response,它是使用requests套件的get函式,對指定的url發起請求。
response = requests.get(url)
# 將回應內容轉換為純文字
html_doc = response.text

透過BeautifulSoup解析:

soup = BeautifulSoup(html_doc, "html.parser")

BeautifulSoup的( )內:

第一格參數是放要解析的對象,可以是HTML字符串、存放在電腦中的HTML檔案以及網頁請求的回應內容,這裡我們填上html_doc。

第二格是填解析器,可填可不填,不填會使用標準函式庫預設的"html.parser",程式碼可以執行但會跳提示,所以還是填上吧。

除了"html.parser"這個解析方法以外,還有"lxml"跟"html5lib":

lxml,執行效率快的解析器,可以快速解析 HTML 和 XML 文本,如果要使用的話需要先安裝相應的函式庫。

pip install lxml


html5lib,可以處理不完整或是複雜的HTML,容錯率比較高,但速度比較慢,也需要安裝相應的函式庫。

pip install html5lib


接著我們透過解析出來的內容找到要的欄位:

#定義變數為element,它從解析好的文件中找符合字典中兩個屬性的td
element = soup.find("td", {"data-table": "本行即期賣出", "class": "rate-content-sight"})


提取出數字:

#從element中取得文字內容,並且字串化,透過​strip去除空格、換行
number = element.text.strip()


接著把內容印出來:

#將{number}變數字串化​
print(f"台灣銀行 的USD/TWD匯率:{number}")


結果:

raw-image


留言
avatar-img
留言分享你的想法!
avatar-img
冬霞的沙龍
22會員
18內容數
冬霞的沙龍的其他內容
2023/10/22
用程式協助尋找殖利率跟可以進場的點位
Thumbnail
2023/10/22
用程式協助尋找殖利率跟可以進場的點位
Thumbnail
2023/10/15
利用git把檔案推到github上
Thumbnail
2023/10/15
利用git把檔案推到github上
Thumbnail
2023/10/08
2023/10/08
看更多
你可能也想看
Thumbnail
介紹朋友新開的蝦皮選物店『10樓2選物店』,並分享方格子與蝦皮合作的分潤計畫,註冊流程簡單,0成本、無綁約,推薦給想增加收入的讀者。
Thumbnail
介紹朋友新開的蝦皮選物店『10樓2選物店』,並分享方格子與蝦皮合作的分潤計畫,註冊流程簡單,0成本、無綁約,推薦給想增加收入的讀者。
Thumbnail
當你邊吃粽子邊看龍舟競賽直播的時候,可能會順道悼念一下2300多年前投江的屈原。但你知道端午節及其活動原先都與屈原毫無關係嗎?這是怎麼回事呢? 本文深入探討端午節設立初衷、粽子、龍舟競渡與屈原自沉四者。看完這篇文章,你就會對端午、粽子、龍舟和屈原的四角關係有新的認識喔。那就讓我們一起解開謎團吧!
Thumbnail
當你邊吃粽子邊看龍舟競賽直播的時候,可能會順道悼念一下2300多年前投江的屈原。但你知道端午節及其活動原先都與屈原毫無關係嗎?這是怎麼回事呢? 本文深入探討端午節設立初衷、粽子、龍舟競渡與屈原自沉四者。看完這篇文章,你就會對端午、粽子、龍舟和屈原的四角關係有新的認識喔。那就讓我們一起解開謎團吧!
Thumbnail
最近開了複委託打算定期定額買美股,主要因為交割戶是設定外幣帳戶交割,先前設置了常用銀行的外幣到價通知,但是美金最近一直逆空高灰,幾乎不會啟動到價通知🥲,只好一直關注銀行即期價格,但因為上班常常會忘記要看一下外幣網銀換匯優惠,故想說練習python之餘,並順便做個爬蟲將資料發送到line群組
Thumbnail
最近開了複委託打算定期定額買美股,主要因為交割戶是設定外幣帳戶交割,先前設置了常用銀行的外幣到價通知,但是美金最近一直逆空高灰,幾乎不會啟動到價通知🥲,只好一直關注銀行即期價格,但因為上班常常會忘記要看一下外幣網銀換匯優惠,故想說練習python之餘,並順便做個爬蟲將資料發送到line群組
Thumbnail
上一篇我們有介紹Google Colab Python的爬蟲基礎概念與技巧,還沒閱讀的朋友可以先進行閱讀,並建立基礎概念之後再接著進行實戰演練會比較容易上手唷! 這裡就附上連結「【Google Colab系列】該如何設計自己的爬蟲來抓取Html資料?」供各位參考囉! 這一篇章會以捕魚的四大步驟進行比
Thumbnail
上一篇我們有介紹Google Colab Python的爬蟲基礎概念與技巧,還沒閱讀的朋友可以先進行閱讀,並建立基礎概念之後再接著進行實戰演練會比較容易上手唷! 這裡就附上連結「【Google Colab系列】該如何設計自己的爬蟲來抓取Html資料?」供各位參考囉! 這一篇章會以捕魚的四大步驟進行比
Thumbnail
今天繼續我們股市LINE BOT的訊息顯示教學,繼上次我們查詢了平均股利的資訊後,這次我們來製作如何查詢歷年股利的部份,其實大同小異,就差在爬取的網站資料差異而已,那我們就開始今天的教學吧!!
Thumbnail
今天繼續我們股市LINE BOT的訊息顯示教學,繼上次我們查詢了平均股利的資訊後,這次我們來製作如何查詢歷年股利的部份,其實大同小異,就差在爬取的網站資料差異而已,那我們就開始今天的教學吧!!
Thumbnail
這是很久以前嘗試過的股票資訊視覺化的小專案,主要是參考自FINVIZ的美股TreeMap發想而來的。在Plotly的說明網站中看到了Sunburst的圖表,便試著按照一樣的邏輯試做了一次。 這篇會大致介紹製作流程,以及如何將互動圖表輸出並崁入wordpress之中。
Thumbnail
這是很久以前嘗試過的股票資訊視覺化的小專案,主要是參考自FINVIZ的美股TreeMap發想而來的。在Plotly的說明網站中看到了Sunburst的圖表,便試著按照一樣的邏輯試做了一次。 這篇會大致介紹製作流程,以及如何將互動圖表輸出並崁入wordpress之中。
Thumbnail
前陣子因為Heroku被駭客入侵原因,導致Github串聯被封阻,一度無法進行教學,不過近日Heroku已重新全面開放串聯,因此我們將持續恢復教學文章,今天我們要教的是如何爬取個股的平均股利資訊,讓我們輕鬆一鍵了解個股股利的發放狀況
Thumbnail
前陣子因為Heroku被駭客入侵原因,導致Github串聯被封阻,一度無法進行教學,不過近日Heroku已重新全面開放串聯,因此我們將持續恢復教學文章,今天我們要教的是如何爬取個股的平均股利資訊,讓我們輕鬆一鍵了解個股股利的發放狀況
Thumbnail
在上一篇教學中,我們學會如從Goodinfo!中將個股的一些最新與基本資訊爬取下來並打印出來,而先前我們也教過如何爬取台股、全球等較大範圍的新聞爬取,而今天我們就打算將範圍縮小,只針對個股的新聞來進行抓取,那我們就開始今天的教學吧!! 匯入套件 爬取YAHOO!股市
Thumbnail
在上一篇教學中,我們學會如從Goodinfo!中將個股的一些最新與基本資訊爬取下來並打印出來,而先前我們也教過如何爬取台股、全球等較大範圍的新聞爬取,而今天我們就打算將範圍縮小,只針對個股的新聞來進行抓取,那我們就開始今天的教學吧!! 匯入套件 爬取YAHOO!股市
Thumbnail
在上一篇教學中,我們學會了如何將鉅亨網上的新聞爬取下來,並且顯示在LINE BOT中,而我們今天則來教一下如何查詢個股的一些基本資訊,以及最新的開盤價、成交價等資訊吧!!
Thumbnail
在上一篇教學中,我們學會了如何將鉅亨網上的新聞爬取下來,並且顯示在LINE BOT中,而我們今天則來教一下如何查詢個股的一些基本資訊,以及最新的開盤價、成交價等資訊吧!!
Thumbnail
在一系列的基礎教學過後,我們終於要來教學跟股票相關的文章了,那就是「如何爬取最新的財經新聞」,別嫌之前的基礎枯燥乏味,基礎打好我們才能夠將功能運用的千變萬化,所以還沒看過之前的基礎教學,可以先去觀看唷!!廢話不多說,我們就開始今天的教學吧!!
Thumbnail
在一系列的基礎教學過後,我們終於要來教學跟股票相關的文章了,那就是「如何爬取最新的財經新聞」,別嫌之前的基礎枯燥乏味,基礎打好我們才能夠將功能運用的千變萬化,所以還沒看過之前的基礎教學,可以先去觀看唷!!廢話不多說,我們就開始今天的教學吧!!
Thumbnail
Excel VBA 簡單的網頁爬蟲
Thumbnail
Excel VBA 簡單的網頁爬蟲
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News