ネット上のスクリプトをお借りし、東証株式相場表(複数・PDF)DLできました。
- 前説:自動で東証株式相場表(PDF)をDLしたい。
- 「デジタル推進課」さんのブログにドンピシャのスクリプトがありました。
- 恥ずかしながらのPythonスクリプト
- 課題:CRON動かすなら、サーバーにPythonとかその拡張機能を入れないと…。
前説:自動で東証株式相場表(PDF)をDLしたい。
これまでに、株式相場表PDFのURLを東証サイト上のリンクをマウスでコピーし、Pythonスクリプトに貼り付けてから、DL(ダウンロード)、分析、データ格納、他PCのMySQLへ保存、というところまでできていました。
あとは、Pythonスクリプトを走らせたら、自動で当月株式相場表PDFを全部DLしたいと思いました。これを成功させ、次にCRON使い、毎日定時に自動でPythonスクリプト起動し、処理してくれるようにしたい、と妄想しています。爺が眠っている間にすべてできている、という夢のようなことを考えています……いつのことやら。
「デジタル推進課」さんのブログにドンピシャのスクリプトがありました。
degitalization.hatenablog.jp
ネット徘徊してましたら、上の記事を見つけました。爺の徘徊も無駄ではないのだと思いました。
それで、デジタル推進課さんの記事内スクリプトを拝借し、チョコチョコと調整して、DLできました。感謝です。
恥ずかしながらのPythonスクリプト
from bs4 import BeautifulSoup import urllib.request as req #相場表掲載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月前 res = req.urlopen(url) soup = BeautifulSoup(res, "html.parser") result = soup.select("a[href]") # print(result) link_list =[] for link in result: href = link.get("href") link_list.append(href) # print(link_list) pdf_list = [temp for temp in link_list if temp.endswith('pdf')] # print(pdf_list) dbpdf_list = [temp for temp in pdf_list if 'stq_' in temp] # print(dbpdf_list) pdfs = dbpdf_list #横着して単に渡してます。 head = "https://www.jpx.co.jp" message ="done DL:" print("これから、ダウンロードします") for pdf in pdfs: req.urlretrieve(head+pdf, pdf[-10:]) print(message + pdf[-10:] ) print("ダウンロード完了しました")
課題:CRON動かすなら、サーバーにPythonとかその拡張機能を入れないと…。
CRONで自動起動させるなら、そのサーバーにPythonと拡張機能追加インストールが必要になりそうです。レンタルサーバーなら、PHPをデフォルトで使えるようになっているかもしれんので、PHPで動かす? とかいうことを考えています(≒ほぼフリだけ)。確かめてみなくては…。
WEB上のPDFをDLし、必要データ取得の後、別MySQLに保存、というところまでできています。たまったデータをどう分析するか、と考えても統計学などはかなり遠い存在でどうにもなりません。株式相場の銘柄別チャートは、作り方がおよそ明らかですので、とりあえずそれを自前で作ってみようか、などと考えています。まあ、これくらいなら、証券会社提供のネットアプリで高性能なのを使えると思うんですけど、自分でつくったのと一致するかどうか…検証することで齟齬を確認できるかと…。