2012-12-21 13 views
5

scrapy herunterladen Dateien nicht ordnungsgemäß herunterladen. Ich habe URLs meiner Artikel, daher dachte ich mir, dass ich wget verwenden kann, um die Dateien herunterzuladen.Wie kann ich wget verwenden, um Dateien mit scrapy

Wie kann ich wget innerhalb der scrapy process_item Funktion verwenden? Gibt es alternativ eine andere Möglichkeit, Dateien herunterzuladen?

class MyImagesPipeline(ImagesPipeline): 
    #Name download version 
    def image_key(self, url): 
     image_guid = url.split('/')[-1] 
     return 'full/%s' % (image_guid) 

    def get_media_requests(self, item, info): 
     if item['image_urls']: 
      for image_url in item['image_urls']: 
      # wget -nH image_ul -P images/ 
      yield Request(image_url) 
+0

Was Sie versuchen, genau das zu erreichen, und Was hast du bisher versucht? – Tadeck

+0

Ich lade Bilder mit scrapy herunter, aber wegen eines Bugs in scrapy werden die gifs als statisches heruntergeladen und nicht animiert. Also dachte ich, ich sollte wget verwenden, um die Bilder direkt downlaodieren zu lassen, anstatt die Bilder zu schreiben. Ich werde meinen Pipeline-Code – user19140477031

Antwort

4

Dieser Code wget ausgeführt wird, können Sie Ihren Kommentar mit den folgenden Zeilen

import subprocess 

    ... 

subprocess.call(['wget','-nH', image_url, '-P images/']) 

Sie über subprocess.call lesen können hier ersetzen: http://docs.python.org/2/library/subprocess.html

+0

Dank Freund, ich werde versuchen, dass – user19140477031

+0

Ich bekomme diese 'wget: illegale Option - '-n' – user19140477031

+0

Ich bearbeitete meine Antwort: Ich habe vergessen, Argumente zu teilen, jetzt sollte es korrekt sein – furins

Verwandte Themen