2012-12-21 12 views
5

scrapy dosyaları düzgün şekilde indirmiyor. Öğelerimin URL'leri var, bu yüzden dosyaları indirmek için wget'i kullanabileceğimi düşündüm.scrub ile dosyaları indirmek için nasıl wget kullanabilirim

Terapi process_item işlevinin içinde nasıl wget kullanabilirim? Alternatif olarak, dosya indirme başka yolu var mı?

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

Ne tam olarak elde etmek için çalışıyoruz ve şu ana kadar ne denedin? – Tadeck

+0

Scrapy ile görüntüleri indiriyorum ama scrapy bazı hata nedeniyle gif anyonlar animasyonlu olmayan staic olarak indirilir. bu yüzden görüntüleri yazmaktan ziyade görüntüleri doğrudan değiştirmek için wget kullanmalıyım diye düşünüyordum. benim boru hattı kodu – user19140477031

cevap

4

Bu kod Burada subprocess.call okuyabilirsiniz

import subprocess 

    ... 

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

şu satırlarla Yorumunuzu yerine, wget çalıştırır: http://docs.python.org/2/library/subprocess.html

+0

göndereceğiz dostum, ben bunu – user19140477031

+0

bunu denerim bu wget: yasadışı seçeneği - ‘-n ' – user19140477031

+0

Cevabımı düzenledim: Argümanları ayırmayı unuttum, şimdi doğru olmalı – furins