仔细看了下scrapy的官方文档关于ImagesPipeline的介绍说明及使用例子:DownloadingItemImages感觉官方文档太过简单。比如:通过在setting.py文件中通过给IMAGES_STORE赋值,就可以指定图片的保存路径。并且默认情况下,文件名是通过对url使用SHA1hash得来的。现在我想以原来的图片名进行保存,不知道该如何做,希望有经验的朋友帮忙指点下~另外求大家帮忙推荐下关于scrapy的相关书籍(中英文都行)
2 回答
繁华开满天机
TA贡献1816条经验 获得超4个赞
修改file_path对原代码侵入太大,如果只是为了修改文件路径的话,可以在item_completed对文件进行重命名。classNeteaseautoImagePipeline(ImagesPipeline):defget_media_requests(self,item,info):forimage_urlinitem['image_urls']:yieldscrapy.Request(image_url.replace('120x90','800x600'))defitem_completed(self,results,item,info):image_paths=[x['path']forok,xinresultsifok]ifnotimage_paths:raiseDropItem("Itemcontainsnoimages")ifitem['jk']:newname=item['car']+'-'+item['jk']+'-'+item['model']+'.jpg'else:newname=item['car']+'-'+item['model']+'.jpg'os.rename("/neteaseauto/"+image_paths[0],"/neteaseauto/"+newname)returnitem
添加回答
举报
0/150
提交
取消