中提到:“飞溅”,python,scrapy,scrapy-splash"/>

首页 > 解决方案 > scrapy 文件(未知错误):从下载图像时出错中提到:“飞溅”

问题描述

我想使用splash下载带有scrapy的图像。当我运行代码时,我收到以下错误:

2019-04-09 11:09:32 [scrapy.pipelines.files] WARNING: File (unknown-error): Error downloading image from <GET https://www.xxxxx.jpg> referred in <None>: 'splash'

我尝试使用 SplashRequest,但失败了。我应该怎么办?请参阅下面的代码:

    def get_media_requests(self, item, info):
        try:
            for image_url in item['image']:
                yield SplashRequest(image_url,endpoint='render.html' )
        except:
            pass

标签: pythonscrapyscrapy-splash

解决方案


检查文档,SplashRequest 需要两个参数:urlself.parse_result. 其余的都是可选的:

yield SplashRequest(url, self.parse_result,
    args={
        # optional; parameters passed to Splash HTTP API
        'wait': 0.5,

        # 'url' is prefilled from request url
        # 'http_method' is set to 'POST' for POST requests
        # 'body' is set to request body for POST requests
    },
    endpoint='render.json', # optional; default is render.html
    splash_url='<url>',     # optional; overrides SPLASH_URL
    slot_policy=scrapy_splash.SlotPolicy.PER_DOMAIN,  # optional
)

在您的代码中,您没有提供self.parse_result参数。您需要传递 parse 方法的名称。例如,如果您的 parse 方法被调用parse,则使用:

yield SplashRequest(image_url, self.parse, endpoint='render.html' )

推荐阅读