El progtwig de raspado de imágenes en Python no funciona como debe

Mi código solo devuelve una cadena vacía, y no tengo idea de por qué.

import urllib2 def getImage(url): page = urllib2.urlopen(url) page = page.read() #Gives HTML to parse start = page.find('', start) img = page[start:end] return img 

Solo devolvería la primera imagen que encuentre, por lo que no es un buen raspador de imagen; Dicho esto, mi objective principal en este momento es simplemente poder encontrar una imagen. No puedo.

Considera usar BeautifulSoup para analizar tu HTML:

 from BeautifulSoup import BeautifulSoup import urllib url = 'http://www.google.com' html = urllib.urlopen(url).read() soup = BeautifulSoup(html) for img in soup.findAll('img'): print img['src'] 

Debería usar una biblioteca para esto y hay varias por ahí, pero para responder a su pregunta cambiando el código que nos mostró …

Su problema es que está tratando de encontrar imágenes, pero las imágenes no usan la etiqueta . Utilizan la . Aquí hay un ejemplo:

 Smiley face 

Lo que debes hacer es cambiar la línea de start = page.find(' así:

 def getImage(url): page = urllib2.urlopen(url) page = page.read() #Gives HTML to parse start = page.find('', start) img = page[start:end+1] return img 

Artículo en pantalla que raspa con ruby: http://www.igvita.com/2007/02/04/ruby-screen-scraper-in-60-seconds/ No es imágenes raspando pero es un buen artículo y puede ayudar.

Extraer la información de la imagen de esta manera no es una buena idea. Hay varias opciones mejores, según tu conocimiento y tu motivación para aprender algo nuevo:

Algunas instrucciones que podrían ser de ayuda:

  1. Utiliza Google Chrome. Ponga el mouse sobre la imagen y haga clic derecho. Seleccione “Inspeccionar elemento”. Se abrirá una sección donde podrá ver el html cerca de la imagen.

  2. Utilice Beautiful Soup para analizar el html:

     from BeautifulSoup import BeautifulSoup request = urllib2.Request(url) response = urllib2.urlopen(request) html = response.read() soap = BeautifulSoap(html) imgs = soup.findAll("img") items = [] for img in imgs: print img['src'] #print the image location items.append(img['src']) #store the locations for downloading later