从我的理解是,为了让我使用文件管道,我需要包括这些到设置.py公司名称:
AWS_ACCESS_KEY_ID = 'access key'
AWS_SECRET_ACCESS_KEY= 'secret'
FILES_STORE = 's3://bucket/'
我需要将这些添加到我的Item对象中
^{pr2}$结果是这样的:
{'file_urls': ['http://i.stack.imgur.com/tKsDb.png',
'http://i.stack.imgur.com/NAGkl.png'],
'files': [{'checksum': 'b0974ea6c88740bed353206b279e0827',
'path': 'full/762f5682798c5854833316fa171c71166e284630.jpg',
'url': 'http://i.stack.imgur.com/tKsDb.png'},
{'checksum': '9a42f7bd1dc45840312fd49cd08e6a5c',
'path': 'full/615eabb7b61e79b96ea1ddb34a2ef55c8e0f7ec3.jpg',
'url': 'http://i.stack.imgur.com/NAGkl.png'}]}
据我所知,文件管道将自动填充images字段。在
我的问题是,有没有必要更改图像字段中的“路径”值?在我的例子中,我想在不同的子目录下存储许多不同的条目,它们都是由同一个spider抓取的,有没有一种方法可以做到这一点,例如创建和扩展我自己的文件管道?如果是这样,我该如何处理?在
我还需要提到,我传递2个不同的网址与1个项目,我想他们是在不同的目录
(也是的,我知道它们是图像,我只是用它作为例子,因为它们是我最先发现的)
是的,如果您查看scrapy files管道here的源代码,这是可能的
您将看到它有一些可以重写的方法,其中之一是
file_path
方法,您可以通过将其添加到管道类中来覆盖它,如下所示其结果将是一个目录,如:
^{pr2}$如果您查看代码的最后几行[这是我添加的唯一代码,其余的代码是因为该方法来自于蹩脚的源代码]
返回自定义路径 现在这个路径依赖于一些东西,在spider上,您可以收集图像元字段,如图像名的文件名、图像类别和其他任何图像拍摄日期等,并在管道中使用它来创建一个自定义目录
相关问题 更多 >
编程相关推荐