iT邦幫忙

2022 iThome 鐵人賽

DAY 23
0
AI & Data

Python網路爬蟲系列 第 23

Day23 - 台灣證券交易所(CSV檔轉換)

  • 分享至 

  • xImage
  •  

跟昨天一樣至台灣證券交易所網站:https://www.twse.com.tw/zh/
進入網站後點選交易資訊/盤後資訊/每5秒委託成交統計
https://ithelp.ithome.com.tw/upload/images/20221008/201524062n5Cj8rSe3.png
由於是每5秒提供一筆資料,因此下載後發現總共有3000多行,我們想辦法將棋改成每30分鐘取得一次累計資料。
https://ithelp.ithome.com.tw/upload/images/20221008/20152406zdiZHrz4ea.png

設定輸入和輸出的檔案路徑和檔案名稱:

import csv
fn = '/Users/sunwei/Desktop/iThone/Day23/MI_5MINS_20221007.csv'
out = '/Users/sunwei/Desktop/iThone/Day23/MI_30MINS_20221007.csv'

轉換成串列並切片刪除成交資訊:

listCsv = list(csvReader)
csvData = listCsv[2:-8]

分、秒:

xmin = row[0][3:5]
xsec = row[0][6:]

每30分鐘時寫入時間和累積成交數:

if xmin == '00' or xmin == '30':
    if xsec == '00':
        csvWriter.writerow([row[0], row[6]])

輸出檔案:

https://ithelp.ithome.com.tw/upload/images/20221008/201524069wpl5Mi7n5.png

程式碼:

import csv

fn = '/Users/sunwei/Desktop/iThone/Day23/MI_5MINS_20221007.csv'
out = '/Users/sunwei/Desktop/iThone/Day23/MI_30MINS_20221007.csv'
with open(out, 'w', newline='') as csvOut:
    csvWriter = csv.writer(csvOut)
    csvWriter.writerow(['時間', '累積成交數'])
    with open(fn) as csvFile:
        csvReader = csv.reader(csvFile)
        listCsv = list(csvReader)
        csvData = listCsv[2:-8]
        for row in csvData:
            xmin = row[0][3:5]
            xsec = row[0][6:]
            if xmin == '00' or xmin == '30':
                if xsec == '00':
                    csvWriter.writerow([row[0], row[6]])

參考書籍:
洪錦魁 -- Python網路爬蟲:大數據擷取、清洗、儲存與分析:王者歸來 2019
林俊瑋, 林修博 --- Python:網路爬蟲與資料分析入門實戰 2018


上一篇
Day22 –台灣證券交易所(股票資訊繪製成折線圖)
下一篇
Day24 – twstock介紹
系列文
Python網路爬蟲30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言