Web 使用URL中显示的相应名称抓取图像

Web 使用URL中显示的相应名称抓取图像,web,scrapy,screen-scraping,Web,Scrapy,Screen Scraping,基本上,我已经搜集了数千张图片,并设法将它们放入按名称分类的文件夹中。在这些文件夹中,图像标有许多随机数字。我想知道是否有一种方法可以从Url中提取标签来命名图像 比如说 https://s3.amazonaws.com/cdn-origin-etr.akc.org/wp-content/uploads/2017/11/13002044/Affenpinscher-On-White-04.jpg 此链接对应的图片标记为02563fe1d2933fe6dec09dc00b69bbabbf1560

基本上,我已经搜集了数千张图片,并设法将它们放入按名称分类的文件夹中。在这些文件夹中,图像标有许多随机数字。我想知道是否有一种方法可以从Url中提取标签来命名图像

比如说

https://s3.amazonaws.com/cdn-origin-etr.akc.org/wp-content/uploads/2017/11/13002044/Affenpinscher-On-White-04.jpg
此链接对应的图片标记为
02563fe1d2933fe6dec09dc00b69bbabbf1560.jpg

我希望它与链接匹配:
Affenpinscher-On-White-04.jpg

有人知道我怎么做吗


我已经使用了scrapy来实现这个功能。

如果您只查看scrapy文档,它已经可用了

延长媒体管道 请参见此处可在自定义文件管道中覆盖的方法:

classscrapy.pipelines.files.FilesPipeline[源代码] 文件路径(self,request,response=None,info=None,*,item=None)[source] 每个下载的项目调用一次此方法。它返回源自指定响应的文件的下载路径

除了响应之外,此方法还接收原始请求、信息和项目

您可以重写此方法以自定义每个文件的下载路径

例如,如果文件URL以常规路径结尾(例如),则可以使用以下方法将所有文件及其原始文件名(例如files/foo.png)下载到文件文件夹中:

导入操作系统
从urllib.parse导入urlparse
从scrapy.pipelines.files导入文件管道
类MyFilePipeline(FilePipeline):
def文件路径(self,request,response=None,info=None,*,item=None):
返回'files/'+os.path.basename(urlparse(request.url.path))
类似地,可以使用该项根据某些项属性确定文件路径

默认情况下,file_path()方法返回full/

版本2.4中新增:item参数


你能分享你的代码让我们看看这些图片是如何被收集的吗?