關於爬蟲這個主題已經有許多前輩介紹了,但我現在才開始學習。本篇也會實際操作我自己嘗試的網路爬蟲。
網路爬蟲(Web Scraping) 就像在網路上「自動蒐集資料的機器人」。
想像情境:
你是一個學生,想蒐集補習班課程的資料。如果你手動查詢每個補習班的課程、時間與價格,會非常耗時。這時,爬蟲 就像一個自動助教,幫你到各個補習班網站,自動找出相關資訊並存入資料庫。
然而並不是每個網站都可以直接爬蟲,有些網站會禁止爬蟲,因為大量的爬蟲會使小型的 Server 崩潰。不能大規模的爬蟲,又要提供使用者一些資料,就會使用 API 這個功能
API(Application Programming Interface) 就像網站提供的自動窗口。
參考其他工程師的 github(這裡有套件),原本想要用 LinkedIn 上的 ABB 亞太職缺資料 Web Scraping 結果花了 2 小時一直找不到 HTML 的 Class,希望再學完網頁後再試著練習。再來嘗試104 人力銀行的查詢也是停在從網頁抓 Header 就找不到,所以我學完網頁會再試試。
(直接點標題有教學文章)
臺灣銀行的連結與API https://rate.bot.com.tw/xrt
可以抓出當下的即時匯率:
(取自網友提供的程式碼)
import requests
url = 'https://rate.bot.com.tw/xrt/flcsv/0/day' # 牌告匯率 CSV 網址
rate = requests.get(url) # 爬取網址內容
rate.encoding = 'utf-8' # 調整回應訊息編碼為 utf-8,避免編碼不同造成亂碼
rt = rate.text # 以文字模式讀取內容
rts = rt.split('\n') # 使用「換行」將內容拆分成串列
for i in rts: # 讀取串列的每個項目
try: # 使用 try 避開最後一行的空白行
a = i.split(',') # 每個項目用逗號拆分成子串列
print(a[0] + ': ' + a[12]) # 取出第一個 ( 0 ) 和第十三個項目 ( 12 )
except:
break