Python爬蟲:爬取富邦的選擇權報價表格

簡單使用requests、BeautifulSoup、pandas整理

MinKuan
Dec 8, 2020

前言

今天將會分享如何使用python爬取富邦的選擇權報價。

在開始爬蟲時都要先研究 目標是誰?結構是甚麼?我要什麼資料?希望最後的資料長怎麼樣? 在腦中有些許畫面後,我們就可以開始了!!!

將學習到

  • requests存取網站結構
  • BeautifulSoup整理結構
  • pandas爬取選擇權的表格

環境設定

win10 Anaconda的jupyter(6.0.3)

使用套件

import requests
import bs4
import pandas as pd

開始作業

步驟1.檢查目標

可以先點開該網站並按滑鼠右鍵”檢查”,先快速看過此網站結構。

https://fubon-ebrokerdj.fbs.com.tw/Z/ZM/ZMJ/ZMJ.djhtm

步驟2.取的網站結構

#目標網站
url ="https://fubon-ebrokerdj.fbs.com.tw/Z/ZM/ZMJ/ZMJ.djhtm"
#取得結構
res = requests.get(url)
#更改資料的字元編碼
res.encoding = 'big-5'

步驟3:BeautifulSoup找到表格並用pandas將表格變成DataFrame

#使用bs4的BeautifulSoup
soup = bs4.BeautifulSoup(res.text,"html.parser")
#找到table
data = soup.select('table')[2]
#使用read_html建立DataFrame
df = pd.read_html(data.prettify())
dfs = df[1]

步驟4:pandas將DataFrame整理成可用資料

#刪減不要的row(index)
dfs = dfs.drop(0)
dfs = dfs.drop(1)
#重新命名columns
dfs.columns=[u"履約價",u"種類",u"開盤",u"最高",u"最低",u"收盤價",u"結算價",u"漲跌",u"漲跌%",u"成交量",u"未平倉",u"delta",u"gamma",u"theta",u"vega",u"隱含波動率%"]
#因流水號經過刪減所以序號有變,所以重設流水號
dfs = dfs.reset_index(drop=True)

成果展示

完整程式碼

小結

雖然程式碼不多,但在製作過程中都是需要一試在試的,雖然有構想要如何整理,但對於一些函數還是會忘記如何使用,所以還是會去網上搜尋關鍵字,絕對不要因為幾次的失敗就放棄,請抱持著學會就進步的想法一同進步,如果你對於上述內容有更好的意見歡迎訊問。

希望這次簡單的分享可以幫助你。

--

--

MinKuan
MinKuan

No responses yet