前提・実現したいこと
青空文庫から「注文の多い料理店」の作品データを抽出・ファイルを作成し、以下のように表示されるようにしたいのですが、以下のようなエラーとなり困っています。初歩的な質問で申し訳ありませんが、力をお貸しいただけると幸いです。
Download URL
URL: https://www.aozora.gr.jp/cards/000081/files/43754_ruby_17594.zip
43754_ruby_17594/chumonno_oi_ryoriten.txt
ファイルの作成:chumonno_oi_ryoriten.txt
発生している問題・エラーメッセージ
ValueError: unknown url type: '-f'
該当のソースコード
python
1# -*- coding: utf-8 -*- 2 3import re 4import zipfile 5import urllib.request 6import os.path,glob 7import sys 8#ダウンロードしたいURLを入力する 9# URL = 'https://www.aozora.gr.jp/cards/000081/files/43754_ruby_17594.zip' 10args = sys.argv 11 12URL = args[1] 13 14if len(URL) == '': 15 print('https://www.aozora.gr.jp/') #青空文庫のURLを入力してください 16 sys.exit() 17 18def main(): 19 download_text = download(URL) 20 print(download_text) 21 text = convert(download_text) 22 # m = re.search('//(\D+)', download_text) 23 # print(m.group()) 24 m = re.findall('(\w+.txt)', download_text) 25 # print(m) 26 print('ファイルの作成:' + m[0]) 27 f = open(m[0], mode='w', encoding='utf-8') # with open(download_text, mode='w', encoding='shift-jis') as f: 28 f.write(text) 29 30 31 32def convert(download_text): 33 binarydata = open(download_text, 'rb').read() 34 text = binarydata.decode('shift_jis') 35 36 # ルビ、注釈などの除去 37 text = re.split(r'\-{5,}', text)[2] 38 text = re.split(r'底本:', text)[0] 39 text = re.sub(r'《.+?》', '', text) 40 text = re.sub(r'[#.+?]', '', text) 41 text = text.strip() 42 return text 43 44def download(url): 45 # データファイルをダウンロードする 46 zip_file = re.split(r'/', url)[-1] 47 if not os.path.exists(zip_file): 48 print('Download URL') 49 print('URL:',url) 50 urllib.request.urlretrieve(url, zip_file) 51 else: 52 print('Download File exists') 53 # フォルダの生成 54 dir, ext = os.path.splitext(zip_file) 55 if not os.path.exists(dir): 56 os.makedirs(dir) 57 # zipファイルの展開 58 zip_obj = zipfile.ZipFile(zip_file, 'r') 59 zip_obj.extractall(dir) 60 zip_obj.close() 61 # zipファイルの削除 62 os.remove(zip_file) 63 # テキストファイルの抽出 64 path = os.path.join(dir,'*.txt') 65 list = glob.glob(path) 66 # print(list) 67 return list[0] 68 69if __name__ == "__main__": 70 main() 71 72
補足情報(FW/ツールのバージョンなど)
・ブラウザはedgeで、jupyter notebookを使っています。
・以下のような指示が出ていますので共有させていただきます。
①Aozora.py を改めてダウンロードし、以下のように試してみてください。
python Aozora.py https://www.aozora.gr.jp/cards/000081/files/43754_ruby_17594.zip
(Aozora.pyは上記のコードが書かれているファイルです。)
②以下のように表示され、実行したフォルダ(デレクトリ)に chumonno_oi_ryoriten.txt ができているはずです。このファイルは UTF-8です。
Download URL
URL: https://www.aozora.gr.jp/cards/000081/files/43754_ruby_17594.zip
43754_ruby_17594/chumonno_oi_ryoriten.txt
ファイルの作成:chumonno_oi_ryoriten.txt
③ちなみに 43754_ruby_17594/chumonno_oi_ryoriten.txt は、青空文庫からダウンロードされたファイルを普通に解凍した場合に作成される Shif-JISのファイルです。
回答1件
あなたの回答
tips
プレビュー