昨日は大体の方針を書きました。今日はzipをダウンロードしてhtmファイルを開くまでをメモしておきます。
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くらいしか使っていなかった私には新鮮で、色々コントロールできるのだなぁなんて思いました。
一方で、色々ダウンロードし始めると、マックブックの容量問題というネックが意識されるようになってきました。
選択肢としては
* 容量の大きいマックブックを買う
* windowsでlinuxを載せる
* 外部ストレージを購入する
という三択でどれを選ぶかなぁという感じです。でもマックブック買うのは高いしないなぁ・・・昨日の決算でスクロール被弾したばかりなので・・・
windowsでlinuxっての良いなぁという感じで、これを色々と試しながら、当面はwindowsとmacの両方で使える外部ストレージを買ってしのごうかなぁと思っています。

- 作者: 三宅英明,大角祐介
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2015/06/06
- メディア: 単行本
- この商品を含むブログ (6件) を見る