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.