Python:DLのみ、MySQL不要バージョン
初めて東証サイトから株式相場表(日報、PDF)をダウンロード(DL)する時用です。まだ、MySQLのテーブルがなくても、そもそもMySQLが動いてなくても、とりあえずDLできます。PDFからCSVにすれば、Excel単独でも使える「可能性」があります。VBAでなんとかしたいと妄想している方には、うってつけかと…ええ。
Pythonスクリプト:株式相場表(日報、PDF)をDLする
あらかじめ、DL先になるフォルダ作っておいてください。爺の場合、C:/pys/pdfフォルダにしてます。
爺の「妄想」に基づく「概念図」(そんな偉そうなもんじゃないけど)は、「東証株式相場表:PDFMinerで解析しMySQLへの流れ(1) - pagetakaBlog」にあります。
pagetaka.hatenablog.jp
#東証サイトから、株式相場表(日報、PDF)をDLする import urllib.request as req from bs4 import BeautifulSoup #東証株式相場表掲載URL:適宜自分で対象URLを書き換え(#をはずす)等する url = "https://www.jpx.co.jp/markets/statistics-equities/daily/index.html" #当月 # url = "https://www.jpx.co.jp/markets/statistics-equities/daily/00-archives-01.html" #1月前 # url = "https://www.jpx.co.jp/markets/statistics-equities/daily/00-archives-02.html" #2月前 # url = "https://www.jpx.co.jp/markets/statistics-equities/daily/00-archives-03.html" #3月前 # url = "https://www.jpx.co.jp/markets/statistics-equities/daily/00-archives-06.html" #6月前 ##url = "https://www.jpx.co.jp/markets/statistics-equities/daily/nlsgeu0000067bix-att/stq_20220228.pdf" #東証株式相場表掲載ページをWEBスクレイピング res = req.urlopen(url) soup = BeautifulSoup(res, "html.parser") result = soup.select("a[href]") links =[] for link in result: #東証相場表頁にあるリンク取得→links href = link.get("href") links.append(href) #リンク(href)があるのをとりあえずリストにする #linksのうち拡張子PDF=相場表のみリスト化→pdfs pdfs = [temp for temp in links if (temp.endswith('pdf') and 'stq_' in temp)] links = [] #不要になった→初期化 #東証サイトからDLした日別相場表PDF(約400ページ)の市場日付をDL後のファイル名に使い、C:/pys/pdfフォルダへ保存 header = url[0:21] #東証サイト for a_pdf in pdfs: req.urlretrieve(header + a_pdf, 'pdf/' + a_pdf[-12:])
10/28追記:「まとめ」UP
東証株式相場表をDLし、PDFMinerでCSV化。「LOAD DATA INFILE」でMySQLへUP、というながれをまとめました。