Как скачать с помощью python scrapy

Я получаю список URL-адресов, но изображения не загружаются.

import scrapy
from ..items import GoogleItem

class spider(scrapy.Spider):

    name = 'google'
    start_urls = [
        "https://www.google.com/search?q=selena%20gomez&spell=1&ie=UTF-8&gbv=1&tbm=isch&sxsrf=ALeKk01ILeLRLtOpXXVyxa1PQYz38RnbRg%3A1586860191506&ei=n5CVXu2GHPGY4-EPreeA-AM&sa=N&btnG=Search"
    ]

    def parse(self, response):
        item = GoogleItem()
        img_url =[]
        for image in response.xpath('/html/body/table[4]/tr/td/a/img/@src').extract():
            img_url.append(image)

        item["image_urls"]= img_url

        return item

В пункте я сделал это:

import scrapy


class GoogleItem(scrapy.Item):
    images = scrapy.Field()
    image_urls = scrapy.Field()

в настройках это:

ITEM_PIPELINES = {
    'test_scrapy.pipelines.TestScrapyPipeline': 1,
}


IMAGE_STORE ="E:/New folder/image"

Я получаю это в своем терминале со ссылками на URL-адреса изображений:

{'downloader/request_bytes': 404, 'downloader/request_count': 1,

Что я сделал не так??


person Deepu    schedule 14.04.2020    source источник


Ответы (1)


Ваш ITEM_PIPELINE должен также включать конвейер загрузки изображений:

ITEM_PIPELINES = {
    # your pipeline that adds `image_urls` field
    'test_scrapy.pipelines.TestScrapyPipeline': 1,
    # scrapy's pipeline taht downloads images
    'scrapy.pipelines.images.ImagesPipeline': 999,
}

Для получения дополнительной информации см. официальные документы в медиаконвейерах: https://docs.scrapy.org/en/latest/topics/media-pipeline.html#enabling-your-media-pipeline

person Granitosaurus    schedule 15.04.2020
comment
Я сделал это. Теперь я получаю ModuleNotFoundError: нет модуля с именем 'test_scrapy.pipelines.images'; 'test_scrapy.pipelines' не является пакетом - person Deepu; 16.04.2020
comment
Я решил эту проблему с импортом, но файлы по-прежнему не загружаются. - person Deepu; 16.04.2020
comment
Я получаю только images_urls. и получаю ту же ошибку downloader/request_bytes: 404 - person Deepu; 16.04.2020