隗より始めよ

今後はいろいろ考え始めます。

適時開示のzipを開いてhtmファイルをパースする②

f:id:mazarimono:20181031124515j:plain

昨日は大体の方針を書きました。今日はzipをダウンロードしてhtmファイルを開くまでをメモしておきます。

適時開示情報閲覧サービス - 開示情報一覧

www.mazarimono.net

zipファイルをローカルにダウンロード

ダウンロードするのはurllib.requestのurlretrieveで行います。

例えばhtttps://www.mazarimono.net/tekito.zipを/Users/myname/Documentsにダウンロードする場合、

import urllib.request
urllib.request.urlretrieve('htttps://www.mazarimono.net/tekito.zip', '/Users/myname/Documents')

でできます。簡単!

zipファイルをのぞく

zipファイルって開いたらサイズが大きくなるのでうっとうしい。ので、開かずにのぞきますw zipファイルはzipfile.ZipFile()ってモジュールで開いて、infolist()でのぞきます。でファイルネームだけ欲しかったので、filenameってつけています。

import zipfile

with zipfile.ZipFile(local_zip_path, 'r' )  as myzip:
      infos = myzip.infolist()
      for info in infos:
            print(info.filename)

zipから欲しいファイルを選んで保存する

基本欲しいデータはhtmファイルです。ちょっと気になったんですが、htmlファイルとhtmファイルってどう違うのか???

ググると出てきて、拡張子が昔は3文字しか使えなかった、それの名残だということと、また制作ソフトによってはそれしか使えなかったということでした。

見たところ適時情報でzipがあるのは決算発表と業績修正です。で、決算情報のzipはAttachmentとSummaryの二つのフォルダに分かれていて、業績修正はフォルダはありません。

決算情報のAttachmentにはBS、PL、キャッシュフローデータなんかがあるのですが、今回はそんなに詳しいデータはなしで、決算短信の1ページ目だけが欲しいということで、Summaryにあるhtmファイルを取得します。

これは正規表現を使えば簡単に取れます。そしてそれを指定するディレクトリに開きます。それを行うのに先ほど読み込んだmyzipを使います。

import re 

# 決算短信
if re.search('/Summary/.*htm', info.filename):
      myzip.extract(info.filename,  my_path)

# 業績修正
if re.search('.*htm',filename):
     myzip.extract(info.filename, my_path)

で、最後にzipを消しておしまいです。

import os
os.remove(local_zip_path)

そのほかのメモ

ファイルのコピーとかフォルダの消去なんかはshutilで行います。決算データのhtmファイルだけを解凍してもXBRLDataというフォルダとSummaryというフォルダの二つが出てきます。ので一気に消去です。

import shutil
# ファイルをコピーする
shutil.copy(filepath, folderpath2)
# 色々はいっているフォルダを消去する。
shutil.rmtree(folderpath2)

zipに入っているhtmファイルの名前は奇妙な名前がついているので、日付とコードだけにしたかった。ファイル名の変更はos.rename()でできます。

import os
os.rename('変な名前', '分かりやすい名前')

まとめ

ダウンロードしたり、その保存先をかえたり、その中から必要なものだけを取り出したりってをやり始めると、osとかのモジュールを使うことが多くなりました。pandasくらいしか使っていなかった私には新鮮で、色々コントロールできるのだなぁなんて思いました。

一方で、色々ダウンロードし始めると、マックブックの容量問題というネックが意識されるようになってきました。

選択肢としては
* 容量の大きいマックブックを買う
* windowslinuxを載せる
* 外部ストレージを購入する

という三択でどれを選ぶかなぁという感じです。でもマックブック買うのは高いしないなぁ・・・昨日の決算でスクロール被弾したばかりなので・・・

windowslinuxっての良いなぁという感じで、これを色々と試しながら、当面はwindowsmacの両方で使える外部ストレージを買ってしのごうかなぁと思っています。  

新しいLinuxの教科書

新しいLinuxの教科書