2012-12-21 42 views
5

scrapy沒有正確下載文件。我有我的項目的URL,所以我想我可以使用wget來下載文件。我如何使用wget下載scrapy的文件

如何在scrapy process_item函數中使用wget?或者,是否有另一種下載文件的方式?

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

你所試圖實現準確,你試過什麼了? – Tadeck

+0

我正在用scrapy下載圖片,但由於scrapy中的一些錯誤,gif anmations被下載爲staic動畫。所以我想我應該使用wget直接下拍圖片而不是寫圖片。我會發布我的管道代碼 – user19140477031

回答

4

此代碼將執行wget的,你可以用下面的線

import subprocess 

    ... 

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

你可以在這裏閱讀subprocess.call更換您的評論:http://docs.python.org/2/library/subprocess.html

+0

謝謝哥們,我會試試 – user19140477031

+0

我得到這個'wget:非法選項 - '-n' – user19140477031

+0

我編輯了我的答案:我忘了分裂參數,現在它應該是正確的 – furins