四季報CD-ROM買ったけど、目的のデータを見るまで、何度もクリックしなくてはならず面倒臭い。臭いので、データを取り込んで、sqliteかAcccessに取り込んで、ぱっと表示させようかと思い、チャレンジしてみた。
一発で書き出すようなことは出来ないどころか、CD-ROMから表示させたデータはコピーができない。
表示されたデータをテキストにして保存する方法を、ネットで検索したが、うちのPCでは出来ない方法が1記事あっただけだった。
どうやらとても面倒くさいので検討する意味はないでしょう。
でも行きがかり上やってみた
欲しいデータをPDFファイルに出力します
CD-ROMのらくらくスクリーニングから取り込みたいデータを表示させて、「印刷」からPDFに書き出します。
四季報CD_ROMのメニューバーから印刷をかけます
[Microsoft Print to PDF]を選択
作成されたPDFファイルを開いて、全部選択し(コントロール+a)、コピーします。
PDFからテキストファイルに(csv)に手動で変換します
自動でする方法をアプリや誰かのコードやら随分探しましたが、どれも不完全すぎて使い物になりませんでした。出来るだけの自動+最低限の手動で方法を模索します。(とにかくデータが欲しかった)
エディターを開きます。(windowsのnotepad不可、サクラエディタおすすめ)
コピーしたPDFの全部を貼り付け、名前を付けて保存で○○.csvで保存
pythonプログラムで各ページに挟まれているタイトル文を削除します。
とても箇所が多いので、1ファイルならともかく、とても手動では出来ませんので、pythonでちょこちょこして自動で取り除きます。
# Created: 12/09/2020
# Copyright: (c) leoco 2020
# Licence: <your licence>
#-------------------------------------------------------------------------------
import os, tkinter, tkinter.filedialog, tkinter.messagebox
import csv
from os import path
def get_filename():
# ファイル選択ダイアログの表示
root = tkinter.Tk()
root.withdraw()
fTyp = [("",".csv")]#fTyp = [("","*")]すべての種類
iDir = os.path.abspath(os.path.dirname(__file__))
file = tkinter.filedialog.askopenfilename(filetypes = fTyp,initialdir = iDir)
return file
file_name=get_filename()
with open(file_name, "r") as input:
with open(file_name+'.csv', "w",encoding="utf-8_sig") as output:
for line in input:
if 'らくらく' in line or '会社四季報' in line or 'No.' in line:
continue
output.write(line)
runすると(まだ単ファイルづつ処理、フォルダ一気処理を付け足す予定)
すると、読み込んだ.csv.csvという、タイトル文が取り除かれたデータだけのファイルが出来上がる。
ファイルによってはwindows上の文字コードエラーが出る
utf-8で保存したはずなのに、shift-jis関連のエラーが出る???
UnicodeDecodeError: ‘cp932’ codec can’t decode byte 0x86
encoding=”utf-8_sig” としてファイルオープンすればいいらしい。 目的のデータは出来たが、あと2点処理が必要。 会社名を取らないといけない 数字のカンマを取らないといけない
その後どのBDにどういう形で格納してどうやって利用するか?
窓から見える 汚い街並みの向こうに 水平線が見える気がする
誰か作ってください。又は、一緒に作りましょう(仕組み又はプログラムのこと)
データには洋経済社の著作権があります。個人利用以外はNGです。
会社四季報CD-ROMのデータは東洋経済社に著作権が有ると思われますので、データは自分の個人的利用しか許されません。webやSNSにアップしてしまうと著作権侵害で、大金を請求されると思われますので、株で億ってからするか、そういうことはしないのがよろしいと言えます。
コメント