2021年3月2日 星期二

股票抽籤申購爬蟲

經過多次熱門上市或上櫃的股票公開抽籤過期才發現沒填單,就想要一個自動爬蟲通知的系統。 爬蟲簡易程式碼如下,這個爬蟲可以搭配自動發送Email或是line api或是telgram api

import requests
import time
import pandas as pd
from io import StringIO
from datetime import datetime

now = datetime.now()
now = now.strftime("%Y/%m/%d")
# 把要取資料的年份帶入
url = "https://www.twse.com.tw/announcement/publicForm?response=csv&yy={0}".format(now[0:4])
# 用request 套件抓取網頁
res = requests.get(url)
res.encoding='big5'
# 用pandas讀取csv檔案
df = pd.read_csv(StringIO(res.text), header=1)

select_df = pd.DataFrame(df)
select_df = select_df[:len(select_df)-5]

print(select_df)

msg = ""

for index,row in select_df.iterrows():
    try:
        ldate = row['抽籤日期']
        name = row['證券名稱']
        market = row['發行市場']
        begindate = row['申購開始日']
        enddate = row['申購結束日']
        dollor = row['承銷價(元)']

        ldate = ldate.replace(ldate[0:3],str(int(enddate[0:3]) + 1911 ))

        begindate = begindate.replace(begindate[0:3],str(int(begindate[0:3]) + 1911 ))
        enddate = enddate.replace(enddate[0:3],str(int(enddate[0:3]) + 1911 )) 
			
       # 組成要發送訊息的格式,如果申購時間還沒過期就可以準備要發送
        if(now < enddate):
            msg += """{0} {1} {2} {3} {4} {5}\n""".format(ldate, begindate, enddate, name, market, dollor)
        else:
            msg += ""
    except:
        print("error")

print(msg)

沒有留言:

張貼留言

CentOS Python 3.7 安裝方式

有些開發的程式在python 3.8的檔案套件不相容,例如pymssql,等。 所以如果不建置虛擬環境的話才特意安裝3.7版本的python 安裝流程如下 # 先進行yum套件的update yum update -y # 安裝相依性套件 yum install gcc o...