2014-12-17 9 views
9

Io uso try except per evitare errori, ma il mio terminale mostrano ancora l'errore, ma non il messaggio di registro:errore Scrapy: exceptions.ValueError: Mancare schema a richiesta URL:

raise ValueError('Missing scheme in request url: %s' % self._url) 
exceptions.ValueError: Missing scheme in request url: 

Come posso evitare questo errore quando Scrapy non hai ottenuto image_urls?
Per favore guidami, grazie mille.

try: 

     item['image_urls'] = ["".join(image.extract()) ]  
    except: 
     log.msg("no image foung!. url={}".format(response.url),level=log.INFO) 

risposta

15

il campo image_urls deve essere un elenco, non uno str.

Se si esegue questa operazione e si genera ancora l'eccezione, sembra che l'URL che si è raschiato sia il percorso relativo.

il ImagePipeline non conosce l'host, quindi non può generare il percorso assoluto per la ricerca per indicizzazione.

import urlparse 
item['image_urls'] = [ urlparse.urljoin(response.url, u) for u in image.extract() ] 
+0

questo davvero fare cose interessanti. tnx –

7

"schema di richiesta URL Missing" significa che ti manca il "http: //" parte dell'URL, molto probabilmente a causa del tuo URL sono relative e dovrebbe essere assoluta.

Problemi correlati