Как включить scrapy spider для загрузки изображения с начальных URL? - PullRequest
0 голосов
/ 26 апреля 2020
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) в моем проекте. В пауке А у меня есть определенный c класс конвейера для обработки загруженных элементов. Теперь это работает хорошо.

Но позже, когда я использовал паук B, он также использовал тот же класс конвейера, что и паук A. Как мне установить класс конвейера, чтобы он был эксклюзивным для использования пауком A?

1 Ответ

0 голосов
/ 27 апреля 2020

Чтобы ответить на ваш второй вопрос, взгляните на этот пост:

Как я могу использовать разные конвейеры для разных пауков в одном проекте Scrapy

Вы также можете просто удалите часть конвейера в вашем файле settings.py и создайте custom_settings в своем пауке.

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

Но я думаю, что пример, показанный в посте выше, немного более элегантен.

...