先設定一個url,並使用get將資料load下來,然後轉成text。
使用pd.read_csv去讀資料,會有' " '與' = '的部分要用下面的code去掉。
test_df['證券代號'] = test_df['證券代號'].apply(lambda x: x.replace('"', ''))
test_df['證券代號'] = test_df['證券代號'].apply(lambda x: x.replace('=', ''))
這樣會得到一個基本的DataFrame。
將此段cod寫成一個函式如下圖
接下來要設定一個 parsn_n_days()的函式,帶入start_date, n兩個參數。
start_date會是今天的日期,n會是想要抓的天數。
假如要抓最近100天,n就會是100。
使用for迴圈的方式
for i in range(n):
time.sleep(3)
now_date = now_date - datetime.timedelta(days=1)
try:
df = crawler(trans_date(now_date))
print("成功"+' '+trans_date(now_date))
df_dict.update({trans_date(now_date): df})
except:
print("失敗"+' '+trans_date(now_date))
如果成功的話就會就會顯示"成功"+' '+trans_date(now_date)
如果當天沒有開市就會是"失敗"+' '+trans_date(now_date)
並將結果update到df_dict內然後回傳
for key in result_dict.keys():
result_dict[key].to_csv(str(key)+".csv", encoding="utf_8_sig")
回傳出來的值再透過to_csv輸出成csv檔。
參考連結如下
https://www.youtube.com/watch?v=df_zDnFGxmU&t=15s