証券コードを読み込んで,そこからフォルダを作って,PDFを入れていく

証券コードが書いてあるcsvを読み込んで,それをもとにフォルダを作りたい.まず,ライブラリーをいくつか読み込んでおく.

from urllib.request import Request, urlopen 
import requests  
import os
import pandas as pd
import numpy as np
df = pd.read_csv('sec_code/topix100.csv',names=["sec_code"])
print(df)
    sec_code
0       1925
1       1928
2       2413
3       2502
4       2503
..       ...
94      9531
95      9735
96      9843
97      9983
98      9984

[99 rows x 1 columns]

pd.set_option('display.max_rows',100)を追加することで省略を回避できる.データフレーム内の値をfor文で取り出したい時は

for i in df["sec_code"]:
    print(i)

証券コードをもとにフォルダを作る.

for sec_code in df["sec_code"]:
    path_1="clear_copy/firm/"+str(sec_code)+"/original"
    os.makedirs(path_1,exist_ok=True)#mkdir

そして,webからpdfをdownloadするための関数.

def donwload(url,save_path,year):
    r = requests.get(url)
    with open(save_path,"wb") as code:
        code.write(r.content)
def get_report(sec_code,url_2018,url_2019,url_2020,url_2021):
    save_path="clear_copy/firm/"+str(sec_code)+"/original/"
    url_list=[url_2018,url_2019,url_2020,url_2021]
    #dfの値を参照するときは,.atを忘れないように.
    for i in range(2018,2021+1,1):
        donwload(url_list[i-2018],save_path+str(i)+".pdf",year=i)

今回は,2018年から2021年までのCSRレポートが欲しかったので,上記のようなコードになっている.いずれ,年次の部分は変数にすると思う.

関数の使い方は簡単で,optionは証券コードと2018年から2021年までのCSRレポートのURLを入力するだけ.(筆者の目的.また2021年に発行されたサステナレポートの場合,2020年の事象を扱っていることに注意.).

print(df[:9])
   sec_code
0      1925
1      1928
2      2413
3      2502
4      2503
5      2802
6      2914
7      3382
8      3402
9      3407

先ほど得た証券コードを入れて,URLも代入していく.

#kirin
get_report(2503,
            "https://www.kirinholdings.com/jp/investors/files/pdf/environmental2018.pdf",
            "https://www.kirinholdings.com/jp/investors/files/pdf/environmental2019.pdf",
            "https://www.kirinholdings.com/jp/investors/files/pdf/environmental2020.pdf",
            "https://www.kirinholdings.com/jp/investors/files/pdf/environmental2021.pdf")

サステナビリティーレポートだけ抽出できたら最高だけど・・・.

2021/09/01追記

TOPIX100で作るのはやめた.数が多すぎて把握できない.
上で書いたコードを適宜,修正して使うことにする.

ツイッターでシェア
みんなに共有、忘れないようにメモ

🚀🐶CZ投資ちゃんねる🐶🌕

大学院生です.YouTube始めました.株式,CFD,為替を中心にトレードしています.トレアイ「CZ」で参加しています.よろしくお願いします.

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント