pagetakaBlog

最近リフォームと鳥取県日南町の記事多め。写真、PC、ネット等の話題も

東証株式相場表:PDFMinerで解析しMySQLへの流れ(3)日報PDFをDL

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、というながれをまとめました。