Python
1```~~~~ 2コード 3```### 実行でき、画像をフォルダに保存したい 4 5 6### 発生している問題・エラーメッセージ 7
エラーメッセージ
ValueError
1<ipython-input-21-d8a8b95d4d3a> in <module> 2 2 3 3 print (idx+1,plant) 4----> 4 weblio_scraping(plant) 5 5 time.sleep(3) 6 7<ipython-input-20-6a18939f70df> in weblio_scraping(keyword) 8 5 reader = csv.reader(f) 9 6 created_folders = {} 10----> 7 for row in reader: 11 8 hierarchy_list = row[0].split('-') 12 9 name = row[1] 13 14ValueError: I/O operation on closed file. 15 16 17 18### 該当のソースコード 19 20```言語 python 21ソースコード 22```from bs4 import BeautifulSoup 23import requests 24import pandas as pd 25import time 26import csv 27import os 28 29plant_list = [] 30 31with open("plant_list.txt", encoding='utf_8') as f: 32 for plant in f.readlines(): 33 plant_list.append(plant.rstrip('\n')) 34 35plant_list 36 37def weblio_scraping(keyword): 38 39 # ① keywordでフォルダ作成 40 with open("plant_list.txt", encoding='utf_8') as f: 41 reader = csv.reader(f) 42 created_folders = {} 43 for row in reader: 44 hierarchy_list = row[0] 45 name = row[1] 46 if len(hierarc) == 1: 47 if not os.path.exists(name): 48 os.mkdir(f"img/{name}") 49 created_folders[row[0]] = name 50 continue 51 52 53 # ② スクレイピング 54 url = 'https://www.weblio.jp/content/{}'.format(keyword) 55 source = requests.get(url) 56 source.encoding = source.apparent_encoding 57 soup = BeautifulSoup(source.text,'html.parser') 58 59 # ③ 植物図鑑検索 60 plant_dictionary = soup.select("div.pbarT div.pbarTLW div.pbarTL a[title=植物図鑑]") 61 62 # 空の配列検索 63 if plant_dictionary: 64 65 # 植物図鑑があるやつのみ、imgタグ収集 66 for url in soup.find_all('img'): 67 68 # URL表示 69 print (url.get('src')) 70 71 # ④ URLから画像取得し、①のフォルダ内に保存する 72 73 url = 'https://www.weblio.jp/content/{}'.format(keyword) 74 file_name = "保存したいファイル名.jpg" 75 76 response = requests.get(url) 77 image = response.content 78 79 with open(file_name, "wb") as aaa: 80 plant.write(img) 81 82### 試したこと 83 84ここに問題に対して試したことを記載してください。 85 86### 補足情報(FW/ツールのバージョンなど) 87# ① keywordでフォルダ作成 88# ④ URLから画像取得し、①のフォルダ内に保存する 89以上の2つを修正していただきたいです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。