Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.61/41: Рейтинг темы: голосов - 41, средняя оценка - 4.61
Protos73
7 / 6 / 7
Регистрация: 10.08.2015
Сообщений: 62
1

Сохранить картинку по ссылке

15.01.2016, 09:59. Просмотров 8354. Ответов 12
Метки нет (Все метки)

Python 3.x хочу сохранить картинку на комп по прямой ссылке на неё.

В гугле нашёл такой скрипт, по сравнению с другими он хотя бы запускается. Как я понял, он читает урл и открывает его. Но ничего не открывается, и мне требуется сохранить фото в какую нибудь папку.


Python
1
2
3
4
5
6
import urllib.request
url = "https://урл на картинку.jpg"
img = urllib.request.urlopen(url).read()
out = open("img.jpg", "wb")
out.write(img)
out.close
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.01.2016, 09:59
Ответы с готовыми решениями:

Сохранить картинку по прямой ссылке
Здравствуйте. Кароче КАК сохранить картинку по конкретной ссылке?

Покозать картинку из бд по её ссылке
Доброго времени суток ест бд id avtor linc---ссылка на картинку data Как покозать картинку...

PictureBox не отображает картинку по ссылке
В программе загружаются картинки в picturebox, почему одну из них picturebox не может отобразить? ...

скачать рисунок по ссылке из интернета и сохранить в базе
Здравтсвуйте! подскажите пожалуйста, как средствами лотус скачать с указанной странички в интернете...

12
Jabbson
Эксперт по компьютерным сетям
3511 / 2540 / 788
Регистрация: 03.11.2009
Сообщений: 7,983
Записей в блоге: 3
15.01.2016, 10:33 2
Python
1
out.close()
1
Protos73
7 / 6 / 7
Регистрация: 10.08.2015
Сообщений: 62
15.01.2016, 10:47  [ТС] 3
Да, разобрался. Он сохранял туда где находился скрипт питона с именем img. Просто сам слепой.
0
SCAREWWW
0 / 0 / 0
Регистрация: 18.08.2011
Сообщений: 10
04.04.2019, 11:41 4
А если усложнить скрипт, скажем нужно 100 изображений из файла (список url есть) и сохранить с тем же именем, как и фото
"https://сайт.рф//img/catalog/1/000000581-1.jpg" и на выходе 000000581-1.jpg ?
0
Semen-Semenich
1378 / 966 / 524
Регистрация: 21.03.2016
Сообщений: 2,778
04.04.2019, 16:07 5
SCAREWWW, в цикле читаете url парсите назавание файла и подаете его в open()
Python
1
2
3
4
5
>>> url = "https://сайт.рф//img/catalog/1/000000581-1.jpg"
>>> file_name = url[url.rfind('/')+1:]
>>> file_name
'000000581-1.jpg'
>>>
1
Garry Galler
2966 / 2262 / 801
Регистрация: 28.10.2013
Сообщений: 5,844
04.04.2019, 16:14 6
Еще варианты получения имени файла:
Python
1
2
3
4
5
6
7
8
9
>>> url = "https://сайт.рф//img/catalog/1/000000581-1.jpg"
>>> url.split("/")[-1]
'000000581-1.jpg'
>>> import os
>>> os.path.basename(url)
'000000581-1.jpg'
>>> os.path.split(url)[-1]
'000000581-1.jpg'
>>>
1
SCAREWWW
0 / 0 / 0
Регистрация: 18.08.2011
Сообщений: 10
04.04.2019, 21:41 7
Python
1
2
3
4
5
6
7
8
import urllib.request
url = open("tt.txt", "r")
for line in url.readlines():
file_name = url[url.rfind('/')+1:]
img = urllib.request.urlopen(url).read()
out = open(file_name, "wb")
out.write(img)
out.close()
Выдает ошибку 4 строке на file_name
0
Garry Galler
2966 / 2262 / 801
Регистрация: 28.10.2013
Сообщений: 5,844
04.04.2019, 21:45 8
Вы не соблюдаете правила синтаксиса.
Как минимум нужно вот так:
Python
1
2
3
4
5
6
7
with  open("tt.txt", "r") as f:
    for url in f:
        file_name = url[url.rfind('/')+1:]
        img = urllib.request.urlopen(url).read()
        out = open(file_name, "wb")
        out.write(img)
        out.close()
Но по большому счету этот код никуда не годится.
1
SCAREWWW
0 / 0 / 0
Регистрация: 18.08.2011
Сообщений: 10
04.04.2019, 22:02 9
Возможно, но я все равно хочу победить этот скрипт -)

OSError: [Errno 22] Invalid argument: '000000581-1.jpg\n'
0
Garry Galler
2966 / 2262 / 801
Регистрация: 28.10.2013
Сообщений: 5,844
04.04.2019, 22:51 10
Добавьте в начало цикла (перед file_name=....):
Python
1
url = url.strip()
0
SCAREWWW
0 / 0 / 0
Регистрация: 18.08.2011
Сообщений: 10
05.04.2019, 00:11 11
taberror inconsistent use of tabs and spaces in indentation в python
Лишних символов нет, и если в файле один url, то все работает... а если больше, то нет
0
Garry Galler
2966 / 2262 / 801
Регистрация: 28.10.2013
Сообщений: 5,844
05.04.2019, 00:41 12
Цитата Сообщение от SCAREWWW Посмотреть сообщение
taberror inconsistent use of tabs and spaces in indentation в python
Вы опять не соблюдаете синтаксис - смешиваете в скрипте в отступах пробелы и табуляцию.
0
SCAREWWW
0 / 0 / 0
Регистрация: 18.08.2011
Сообщений: 10
05.04.2019, 07:51 13
Python
1
2
3
4
5
6
7
8
9
import urllib.request
with  open("tt.txt", "r") as f:
    for url in f:
        url = url.strip()
        file_name = url[url.rfind('/')+1:]
        img = urllib.request.urlopen(url).read()
        out = open(file_name, "wb")
        out.write(img)
        out.close()
Пишу в notepad++ все подсвечивается, нет там пробелов

Добавлено через 7 минут
Большое спасибо! Все верно, говорите -)))
0
05.04.2019, 07:51
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.04.2019, 07:51

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Сохранить картинку на форме
Имеется ввиду, что при открытии картинка уже находится на форме. Жду помощи

Как сохранить картинку
Имеется адрес картинки, как ее сохранить, на компьютер?

Сохранить измененную картинку
В PictureBox я добавляю картинку и кистью рисую по картинке и хочу ее сохранить, но не знаю как это...

Сохранить картинку вxml
Здравствуйте. Помогите примеров и советом, как решить мне такую задачу. Нужно сделать БД с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.