使用Scrapy抓取台股證交所每日股價資料,儲存到Mysql
使用Scrapy抓取台股證交所每日股價資料,儲存到Mysql
本程式完整程式碼在GitHub,網址如下
https://github.com/jang0820/scrapy/tree/master/twse_mysql
Step0)建立資料庫stwstock,新增資料表ac,資料表ac的SQL如下。
#scrapy startproject twse_mysql 建立專案twse_mysql
#cd twse_mysql
#scrapy genspider twse www.twse.com.tw 建立twse_mysql\spiders\twse.py
Step1)編輯twse_mysql\spiders\twse.py,scrapy使用start_urls的網址抓取資料,本程式使用函式__init__動態建立start_urls,瀏覽所提供的start_urls後,會自動呼叫函式parse,函式parse處理回傳的股票JSON格式的資料,透過函式transform將資料進行格式轉換,最後儲存到item物件,scrapy經由設定會將item物件交給pipelines處理,在pipelines撰寫程式將資料加到Mysql資料庫
Step2)修改twse_mysql\item.py,建立資料接收的資料欄位
Step3)修改twse_mysql\pipelines.py,將item插入到資料庫
Step4)本專案設定檔在twse_mysql\settings.py,新增資料庫設定,設定抓取網頁的延遲時間,啟用ITEM_PIPELINES才會將item儲存到Mysql資料庫
Step5)如果從GitHub下載程式碼,在twse_mysql資料夾執行指令「scrapy crawl twse」就可以下載股票資料,最後將資料加到Mysql資料庫stwstock的資料表twse中
使用phpmyadmin查詢資料庫stwstock的資料表twse,如下圖。