【问题标题】:How to turn scrapy spider to download image from start urls?如何让scrapy spider从起始网址下载图片?
【发布时间】:2023-03-18 08:49:05
【问题描述】:
start_urls = ['https://image.jpg']

def start_requests(self):
    for url in self.start_urls:
        request = scrapy.Request(url,callback=self.parse)
        yield request

def parse(self, response):
    item = GetImgsItem()
    # print(response.url)
    item['image_urls'] = response.url
    yield item

我的蜘蛛现在可以从 start_urls 下载图像,但请求被发送了两次以提供一张图像。 我应该如何在 start_requests 中将其转为下载?

问题 2: 我在我的项目中创建了两个蜘蛛(蜘蛛 A,蜘蛛 B)。在蜘蛛 A 中,我有一个特定的管道类来处理下载的项目。现在效果很好。

但是后来我使用spider B的时候,它也使用了spider A的同一个pipeline class,我应该如何设置pipeline class,让spider A独享?

【问题讨论】:

标签: python scrapy web-crawler


【解决方案1】:

要回答您的第二个问题,请查看此帖子:

How can I use different pipelines for different spiders in a single Scrapy project

您也可以只删除 settings.py 文件中的管道部分并在您的蜘蛛中创建 custom_settings。

class SpiderA(scrapy.Spider):
    name = 'spider_a'
    custom_settings = {
        'ITEM_PIPELINES': {
            'project.pipelines.MyPipeline': 300
        }
    }

但我认为上面帖子中显示的示例更优雅一些。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-26
    • 1970-01-01
    • 1970-01-01
    • 2013-02-12
    • 2019-02-17
    相关资源
    最近更新 更多