【筆記】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


20會員
18內容數
留言0
查看全部
發表第一個留言支持創作者!
你可能也想看
笔记六从个人发展的角度来讲,我认为每个人都要有一点自己的长处,这个长处并不是人们常说的一些爱好之类的东西,而是个人身上那种相对稀缺的禀赋,或者是几种特质组合起来的独特性能。 这是任何时候都能保持一定竞争力的前提,也是一种不需要卷就能体现出来的个人优势。其实不需要对自己要求很高,只要在自己的领域高于平均,就
avatar
项明曦
2022-10-31
avatar
项明曦
2022-09-12
avatar
项明曦
2022-08-16
avatar
项明曦
2022-08-03
avatar
项明曦
2022-08-01
avatar
项明曦
2022-07-31
笔记软件的历史、选择策略以及深度评测在日常工作、学习、生活中,笔记软件成为重要的生产力工具。然而,如今的笔记软件百花齐放:云文档? 云笔记? 离线笔记? Markdown 编辑器? 块编辑器?双链笔记?在每个类别中,都有几十款比较有名的笔记软件。那么,我们应该如何选择这些适合自己的笔记软件呢? 文本编辑器的特征 文本编辑器的分类
Thumbnail
avatar
Spike Spiegel
2022-05-28
技術筆記|使用 Hugo 免費搭建個人網站兩年多前,開始有了重新架構網站的想法,所以把 Blogger 架設的網站,移轉至到了新的平台,當年我也做過了一些優缺點評析,剛好最近又再重新整理網站的所有架構,順便也重新啟動了一次 Hugo 架設網站的循環。
Thumbnail
avatar
Liu Will
2021-06-15
紀錄片筆記:我們的青春,在台灣什麼樣的社會運動,才算是成功的社會運動?或者,什麼樣的社會運動,才算有價值與完美的社會運動?這部紀錄片,並未給出一個正確的解答。 但……沒有答案,並不代表就不值得觀看,只因藉由這部紀錄片,我們可以省思在運動之後,這個社會是否得到了什麼?改善了什麼?前進了什麼?還是什麼也沒有,只是一段激情之後換來一股
avatar
趙啟弦
2019-05-05
紀錄片筆記:極簡主義一直以來,皆認為自己還算是個低物慾的人,直到看了這部紀錄片,才真到見識到何謂低物慾的人與生活。 生活在21世紀的這個時代,「消費」已不再是什麼極為困難、遙不可及的事,相反地,對於現在的我們來說,只要經濟上許可,「消費」早已是易如反掌、稀鬆平常之事,更別說那些以貸款、預支的購買行為。 無需太多思考,當
avatar
趙啟弦
2019-05-05