使用 Scrapy 的 Files Pipeline,可以根据 startUrl 里面的链接创建本地文件目录,并将爬取的资源放在该目录下。

首先,在 Scrapy 项目的 settings.py 文件中,启用 Files Pipeline 并设置相关配置:

ITEM_PIPELINES = {
    'scrapy.pipelines.files.FilesPipeline': 1,
}
FILES_STORE = '/path/to/directory'  # 设置爬取资源存储的根目录

然后,在 spider 的代码中,定义一个 Item 类,并在其中添加一个字段来存储资源的链接:

import scrapy

class MyItem(scrapy.Item):
    file_urls = scrapy.Field()
    files = scrapy.Field()

接下来,在 spider 的 parse 方法中,根据 startUrl 里面的链接创建本地文件目录,并将资源链接添加到 Item 中:

def parse(self, response):
    item = MyItem()
    item['file_urls'] = [response.url]  # 将资源链接添加到 Item 中
    yield item

最后,运行 Scrapy 爬虫,爬取的资源将会自动下载到指定的目录下,并且每个资源都会放在以该资源链接命名的子目录中。

注意:确保设置的 FILES_STORE 目录有写入权限,并且可以根据资源链接创建子目录。

Scrapy 文件管道:根据 URL 创建目录并下载资源

原文地址: https://www.cveoy.top/t/topic/p0Hm 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录