Saltar al contenido

¿Cómo guardar una imagen localmente usando Python cuya dirección URL ya conozco?

Nuestro grupo redactor ha estado horas investigando para darle respuesta a tus preguntas, te compartimos la soluciones por eso esperamos que te sea de gran apoyo.

Solución:

Pitón 2

Aquí hay una forma más sencilla si todo lo que quiere hacer es guardarlo como un archivo:

import urllib

urllib.urlretrieve("http://www.digimouth.com/news/media/2011/09/google-logo.jpg", "local-filename.jpg")

El segundo argumento es la ruta local donde se debe guardar el archivo.

Pitón 3

Como sugirió SergO, el siguiente código debería funcionar con Python 3.

import urllib.request

urllib.request.urlretrieve("http://www.digimouth.com/news/media/2011/09/google-logo.jpg", "local-filename.jpg")

import urllib
resource = urllib.urlopen("http://www.digimouth.com/news/media/2011/09/google-logo.jpg")
output = open("file01.jpg","wb")
output.write(resource.read())
output.close()

file01.jpg contendrá su imagen.

Escribí un script que hace exactamente esto y está disponible en mi github para su uso.

Utilicé BeautifulSoup para permitirme analizar cualquier sitio web en busca de imágenes. Si va a hacer mucho web scraping (o tiene la intención de usar mi herramienta), le sugiero que sudo pip install BeautifulSoup. La información sobre BeautifulSoup está disponible aquí.

Para mayor comodidad, aquí está mi código:

from bs4 import BeautifulSoup
from urllib2 import urlopen
import urllib

# use this image scraper from the location that 
#you want to save scraped images to

def make_soup(url):
    html = urlopen(url).read()
    return BeautifulSoup(html)

def get_images(url):
    soup = make_soup(url)
    #this makes a list of bs4 element tags
    images = [img for img in soup.findAll('img')]
    print (str(len(images)) + "images found.")
    print 'Downloading images to current working directory.'
    #compile our unicode list of image links
    image_links = [each.get('src') for each in images]
    for each in image_links:
        filename=each.split('/')[-1]
        urllib.urlretrieve(each, filename)
    return image_links

#a standard call looks like this
#get_images('http://www.wookmark.com')

Nos encantaría que puedieras compartir esta noticia si si solucionó tu problema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *