2017-08-18 12 views
0

ここに表示されているように、画像をダウンロードするときにハッシュURLをスキップする理由https://doc.scrapy.org/en/latest/topics/media-pipeline.html、ここでSHA1は各画像の名前を与えるためにURLをハッシュするために使用されますか?これを実践する利点はありますか?画像をダウンロードする際になぜScrapyのハッシュURLが必要ですか?

+0

でそれを有効にしますが、より詳しく説明してもらえますか?あなたはこのハッシングをどこで見ますか? – Granitosaurus

+0

@Granitosaurus私は詳細を提供するために投稿を編集しました。あなたは明らかに、この投稿に答える資格を得るには十分にScrapyを使用しません。 – user136266

答えて

2

sha1ハッシュされたURLとしてファイルを保存することに大きな利点はないと思います。
いくつかのマイナーな利点ががあります。

  • は、安全でない文字を退治する - など/:.などの文字は、ファイル名だけで.jpgは非常に便利です+いくつかの単語文字も持つ、常にシステム安全ではありません。
  • Contstantの長さ(いくつかのまれなケースでは有用かもしれません)。
  • デュプリケータのフィルタリングを容易にするために、同じURLが同じファイル名を持つようにします。

個人的にはかなり怠け者だと思います。幸運なことに、これは拡張することができますが、それは直感的ではありません。

class MyImagesPipeline(ImagesPipeline): 
    def filename(url): 
     return url.replace(string.letters + '-_.', '') 

    def file_path(self, request, response=None, info=None): 
     # the original code 
     # image_guid = hashlib.sha1(to_bytes(url)).hexdigest() 
     # return 'full/%s.jpg' % (image_guid) 
     # our code 
     return 'full/' + self.filename(response.url) 

    def thumb_path(self, request, response=None, info=None): 
     return 'thumb/' + self.filename(response.url) 

そして、あなたのsettings.py

関連する問題