python - 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
解决方案
检查文档,SplashRequest 需要两个参数:url
和self.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' )
推荐阅读
- apache - 如何将 jsr 223 采样器中的采样器统计信息写入 jmeter 侦听器
- ios - 更改 TitleTextAttributes 文本颜色取决于导航栏颜色
- elastic-stack - filebeat 收集器的最大 close_inactive 时间
- hibernate - 带有连接的休眠条件查询 - 避免从第二个表中进行完全选择
- python - Airflow BashOperator 针对特定路径
- javascript - Angular 6 - 比较两个可观察的长度
- git - 使用 Jenkinsfile 在一个分支中创建多个管道
- javafx - JavaFX - 从线程实时更新线图
- c# - 有没有办法用 Substring 桥接空行?
- java - jdbc 应用程序更新 sql 不适合我,任何想法