サイトからいくつかの jpg をダウンロードしてハード ドライブに保存しようとしていますが、フォーマットに問題があるためにファイルを開くことができません。
チャンクサイズを変更して request() で少し遊んでみましたが、うまくいきませんでした。シェルにエラーはありません。ウェブサイトのリンクは適切です。
url = 'http://<site>'
os.makedirs('photos', exist_ok = True)
res = requests.get(url)
res.raise_for_status()
soup = bs4.BeautifulSoup(res.text, features="html.parser")
elem = soup.select('a img')
if elem == []:
print('no images')
else:
for i in range(len(elem)):
link = elem[i].get('src')
if link != None:
plik = open(os.path.join('photos', os.path.basename(link)), 'wb')
for chunk in res.iter_content(100000):
plik.write(chunk)
plik.close()
print('downloaded %s' % os.path.basename(link))
解決策 (「for i...」ループ内):
url = 'http://<site>'
os.makedirs('photos', exist_ok = True)
res = requests.get(url)
res.raise_for_status()
soup = bs4.BeautifulSoup(res.text, features="html.parser")
elem = soup.select('a img')
if elem == []:
print('no images')
else:
for i in range(len(elem)):
link = url + elem[i].get('src')
res2 = requests.get(link)
res2.raise_for_status()
if link != None:
plik = open(os.path.join('photos', os.path.basename(link)), 'wb')
for chunk in res.iter_content(100000):
plik.write(chunk)
plik.close()
print('downloaded %s' % os.path.basename(link))