質問編集履歴
3
新たな操作を行ったところ、別の疑問が生じたので、それを記述した
test
CHANGED
File without changes
|
test
CHANGED
@@ -85,6 +85,8 @@
|
|
85
85
|
|
86
86
|
shogun_images_urls=img_tag_url, img_tag_date_url, img_tag_chosokabe_url
|
87
87
|
|
88
|
+
from PIL import Image
|
89
|
+
import io
|
88
90
|
#3枚の画像を保存
|
89
91
|
for i, shogun_images_url in enumerate(shogun_images_urls):
|
90
92
|
print(i, shogun_images_url)
|
@@ -110,12 +112,12 @@
|
|
110
112
|
```
|
111
113
|
---------------------------------------------------------------------------
|
112
114
|
FileNotFoundError Traceback (most recent call last)
|
113
|
-
/var/folders/jr/2p724fh51wv7fxmql7kxyb1h0000gn/T/ipykernel_50717/
|
115
|
+
/var/folders/jr/2p724fh51wv7fxmql7kxyb1h0000gn/T/ipykernel_50717/81636433.py in <module>
|
114
|
-
2
|
116
|
+
25 Img=Image.open(io.BytesIO(requests.get(shogun_images_url).content))
|
115
|
-
2
|
117
|
+
26 # Img.save('img/sample.jpg')
|
116
|
-
---> 2
|
118
|
+
---> 27 Img.save(f'img/{i}.jpg')
|
117
|
-
2
|
119
|
+
28
|
118
|
-
2
|
120
|
+
29 #エラー
|
119
121
|
|
120
122
|
~/opt/anaconda3/lib/python3.9/site-packages/PIL/Image.py in save(self, fp, format, **params)
|
121
123
|
2315 fp = builtins.open(filename, "r+b")
|
@@ -129,3 +131,43 @@
|
|
129
131
|
|
130
132
|
img(このファイルは作成してあります)という名前のファイルに3枚の画像をimg/0.jpg、img/1.jpg、img/2.jpgの名前で保存したいのですが、img/0.jpgという名前のファイルに画像を保存するというコードになっているのだと思います。どのようにしたら、この問題を解決できるのでしょうか?
|
131
133
|
|
134
|
+
この疑問に対して
|
135
|
+
|
136
|
+
> imgはファイルですか?ファイルなのかディレクトリなのか整理された方が良いかと思います。
|
137
|
+
|
138
|
+
>img ディレクトリを作成しておくとよいかと。
|
139
|
+
|
140
|
+
という回答者様からの回答をいただき、
|
141
|
+
```Python
|
142
|
+
import os
|
143
|
+
os.mkdir('./img_diretory')
|
144
|
+
```
|
145
|
+
を実行したところ
|
146
|
+
imgに
|
147
|
+

|
148
|
+
img_directoryというディレクトリが作成されました。
|
149
|
+

|
150
|
+
|
151
|
+
そして、
|
152
|
+
- print(os.path.exists('img'))
|
153
|
+
- print(os.path.isfile('img'))
|
154
|
+
- print(os.path.isdir('img'))
|
155
|
+
この全ての操作を行ったところ、Falseという結果出てきました。つまり、
|
156
|
+
- ファイルまたはディレクトリ(フォルダ)の存在確認: os.path.exists()
|
157
|
+
- ファイルの存在確認: os.path.isfile()
|
158
|
+
- ディレクトリ(フォルダ)の存在確認: os.path.isdir()
|
159
|
+
全てに当てはまらないことを意味するのだと思います。
|
160
|
+
|
161
|
+
この解決策がわからなかったので、とりあえず、新規のディレクトリを作成することにしてみました。
|
162
|
+
```
|
163
|
+
mkdir dir1
|
164
|
+
```
|
165
|
+
dir1というディレクトリ名のディレクトリを作成する操作を行ったところ、
|
166
|
+

|
167
|
+
imgにdir1が作成されていました。つまりこれが意味することは、imgはディレクトリやファイルよりも大きな括りであり、ディレクトリやフォルダを作成するコードを作成した際に自動的にそこ(img)に入る存在であるということだと考えられます。
|
168
|
+
|
169
|
+
### 新たな疑問
|
170
|
+
- ここでのimgはどのような存在ですか
|
171
|
+
- imgに自動的にディレクトリやファイルが入る操作をやめるにはどうすれば良いでしょうか
|
172
|
+
|
173
|
+
|
2
調査したこと・試したことの追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -92,5 +92,40 @@
|
|
92
92
|
Img=Image.open(io.BytesIO(requests.get(img_tag.get('shogun_images_urls')).content))
|
93
93
|
Img.save(f'img/{i}.jpg')
|
94
94
|
```
|
95
|
+
### 調査したこと・試したこと
|
95
96
|
|
97
|
+
> エラー(MissingSchema)の原因はimg_tag.get('shogun_images_urls')がNoneだからだと思います。
|
96
98
|
|
99
|
+
という回答者様からのアドバイスから
|
100
|
+
```
|
101
|
+
Img=Image.open(io.BytesIO(requests.get(img_tag.get('shogun_images_urls')).content))
|
102
|
+
```
|
103
|
+
を下記の様に書き換えました。
|
104
|
+
|
105
|
+
```
|
106
|
+
Img=Image.open(io.BytesIO(requests.get(shogun_images_url).content))
|
107
|
+
```
|
108
|
+
|
109
|
+
すると、以下のエラーが出ました。
|
110
|
+
```
|
111
|
+
---------------------------------------------------------------------------
|
112
|
+
FileNotFoundError Traceback (most recent call last)
|
113
|
+
/var/folders/jr/2p724fh51wv7fxmql7kxyb1h0000gn/T/ipykernel_50717/2061955084.py in <module>
|
114
|
+
23 Img=Image.open(io.BytesIO(requests.get(shogun_images_url).content))
|
115
|
+
24 # Img.save('img/sample.jpg')
|
116
|
+
---> 25 Img.save(f'img/{i}.jpg')
|
117
|
+
26
|
118
|
+
27 #エラー
|
119
|
+
|
120
|
+
~/opt/anaconda3/lib/python3.9/site-packages/PIL/Image.py in save(self, fp, format, **params)
|
121
|
+
2315 fp = builtins.open(filename, "r+b")
|
122
|
+
2316 else:
|
123
|
+
-> 2317 fp = builtins.open(filename, "w+b")
|
124
|
+
2318
|
125
|
+
2319 try:
|
126
|
+
|
127
|
+
FileNotFoundError: [Errno 2] No such file or directory: 'img/0.jpg'
|
128
|
+
```
|
129
|
+
|
130
|
+
img(このファイルは作成してあります)という名前のファイルに3枚の画像をimg/0.jpg、img/1.jpg、img/2.jpgの名前で保存したいのですが、img/0.jpgという名前のファイルに画像を保存するというコードになっているのだと思います。どのようにしたら、この問題を解決できるのでしょうか?
|
131
|
+
|
1
タイトル名の変更
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
【Pythonスクレイピング】
|
1
|
+
【Pythonスクレイピング】Invalid URL 'None': No scheme supplied. Perhaps you meant http://None?の意味がわからない
|
test
CHANGED
File without changes
|