【问题标题】:scrapy - not able to upload data to s3scrapy - 无法将数据上传到 s3
【发布时间】:2021-06-08 22:33:11
【问题描述】:

我正在使用 scrapy 从一个运行良好的网站 scrape 数据,但我无法将 scraped 数据上传到 amazon s3

查看scrapy文档,这是我在settings.py中的内容

FEED_URI = 's3://bucket/folder/data-%(time)s.csv'
FEED_FORMAT = 'csv'

AWS_ACCESS_KEY_ID = 'key-goes-here'
AWS_SECRET_ACCESS_KEY = 'secret-key-goes-here'

FEED_EXPORT_FIELDS = None
FEED_STORAGES = {}

FEED_STORAGES_BASE = {
    '': 'scrapy.extensions.feedexport.FileFeedStorage',
    'file': 'scrapy.extensions.feedexport.FileFeedStorage',
    'stdout': 'scrapy.extensions.feedexport.StdoutFeedStorage',
    's3': 'scrapy.extensions.feedexport.S3FeedStorage',
    'ftp': 'scrapy.extensions.feedexport.FTPFeedStorage',
}
FEED_EXPORTERS = {}
FEED_EXPORTERS_BASE = {
    'json': 'scrapy.exporters.JsonItemExporter',
    'jsonlines': 'scrapy.exporters.JsonLinesItemExporter',
    'jl': 'scrapy.exporters.JsonLinesItemExporter',
    'csv': 'scrapy.exporters.CsvItemExporter',
    'xml': 'scrapy.exporters.XmlItemExporter',
    'marshal': 'scrapy.exporters.MarshalItemExporter',
    'pickle': 'scrapy.exporters.PickleItemExporter',
}

ITEM_PIPELINE = {
    'scrapy.pipelines.files.S3FilesStore': 1
}

这是我的环境详细信息,以防万一有帮助

Scrapy       : 1.5.0
lxml         : 4.1.1.0
libxml2      : 2.9.7
cssselect    : 1.0.3
parsel       : 1.4.0
w3lib        : 1.19.0
Twisted      : 18.4.0
Python       : 3.6.4 (default, Mar 10 2018, 19:20:23) - [GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)]
pyOpenSSL    : 18.0.0 (OpenSSL 1.1.0h  27 Mar 2018)
cryptography : 2.2.2
Platform     : Darwin-17.4.0-x86_64-i386-64bit

当我运行 scraper 时,它运行良好,没有崩溃,但是我确实在日志下一行中注意到,我不确定这是为什么以及如何启用它。

[scrapy.extensions.feedexport] 错误:禁用的提要存储方案:s3

任何帮助将不胜感激

【问题讨论】:

    标签: python scrapy


    【解决方案1】:

    错误是由

    中的 _storage_support 函数引发的

    scrapy/scrapy/extensions/feedexport.py

    def _storage_supported(self, uri):
        scheme = urlparse(uri).scheme
        if scheme in self.storages:
            try:
                self._get_storage(uri)
                return True
            except NotConfigured:
                logger.error("Disabled feed storage scheme: %(scheme)s",
                             {'scheme': scheme})
        else:
            logger.error("Unknown feed storage scheme: %(scheme)s",
                         {'scheme': scheme})
    

    您的 URI 参数似乎有问题。

    参考本文档

    https://doc.scrapy.org/en/latest/topics/exporters.html#csvitemexporter

    【讨论】:

    • 本地一切似乎都工作正常,我能够以 csv 格式导出提要,只有当我希望它在 aws 上上传导出时才会出现问题。
    猜你喜欢
    • 2022-01-14
    • 2020-07-07
    • 2018-08-20
    • 2017-01-29
    • 1970-01-01
    • 2018-12-16
    • 2018-09-07
    • 2012-12-09
    • 2017-07-29
    相关资源
    最近更新 更多