Я пытаюсь загрузить некоторые jpgs с сайта и сохранить их на своем жестком диске, но когда я делаю это, я не могу открыть файлы из-за проблем с форматированием, все эти файлы также по какой-то причине имеют 115 КБ.
Я пытался изменить размер чанка и немного поиграл с запросом (), но это не сработало. В оболочке нет ошибок. Ссылка на сайт правильная.
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))