Scrapy 文件管道:根据 URL 创建目录并下载资源
使用 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 目录有写入权限,并且可以根据资源链接创建子目录。
原文地址: https://www.cveoy.top/t/topic/p0Hm 著作权归作者所有。请勿转载和采集!