使用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,如下圖。