Gblog

おもにTips

リファレンスマニュアルにある初期化パラメータのデフォルト値を CSV出力する pythonスクレイピング

python はド素人ですが、楽したいので python にお願いしてます。

マニュアルは zip をダウンロードしてローカルに保存、展開するケースを想定しています。(マニュアルが書き換わっても確認できるように)

import bs4
import csv 
from bs4 import BeautifulSoup
from glob import glob

# 出力ファイル名
outfile = 'default_value.txt'

# Reference マニュアルを指定
manualfile = r'C:\manual\19c\refrn\*.html'


# main
def main():
    with open(outfile, 'wt',newline="",encoding="utf-8" ) as f:

        writer = csv.writer(f)

        for file in glob(manualfile):
#       print(file)
            soup = bs4.BeautifulSoup(open(file,'r',encoding="utf-8"), 'html.parser')

            title = soup.find("title")

            tables = soup.find_all('table')

            for table in tables:

                if 'パラメータ・タイプ' in table.text:

                    for rows in table.find_all('tr'):

                        data = []

                        if 'デフォルト値' in rows.text:
                            data.append(title.text)
                            for cell in rows.find_all('td'):
                                data.append(cell.text.replace('\n',''))

                            writer.writerow(data)

    f.close

if __name__ == '__main__':
    main()

いちおう、11.2 から 19c のマニュアルで動作確認済み(2020年3月時点)

出力のイメージはこんな感じ。

ACTIVE_INSTANCE_COUNT,デフォルト値,デフォルト値はありません。
ADG_ACCOUNT_INFO_TRACKING,デフォルト値,LOCAL
ADG_REDIRECT_DML,デフォルト値,false
ALLOW_GLOBAL_DBLINKS,デフォルト値,FALSE
ALLOW_GROUP_ACCESS_TO_SGA,デフォルト値,false

 

大事なことなのでもう一度言いますが、python はド素人です。

WEBスクレイピング版も、気が向いたら作ります。