ошибка scrapy:исключения.ValueError: отсутствует схема в url-адресе запроса:

Я использую try except чтобы избежать ошибки, но мой терминал все еще показывает ошибку, но не сообщение журнала:

raise ValueError('Missing scheme in request url: %s' % self._url)
exceptions.ValueError: Missing scheme in request url: 

как я могу избежать этой ошибки, когда scrapy не получил image_urls?
Пожалуйста, проводите меня, большое спасибо.

    try:

        item['image_urls'] = ["".join(image.extract()) ]     
    except:
        log.msg("no image foung!. url={}".format(response.url),level=log.INFO)

2 ответов


на image_urls поле должно быть списком, а не str.

item['image_urls'] = image.extract()

если вы это сделаете и все равно создадите исключение, кажется, что URL-адреса, которые вы очистили, являются относительным путем.

на ImagePipeline не знает ваш хост, поэтому он не может генерировать абсолютный путь для обхода.

import urlparse
item['image_urls'] = [ urlparse.urljoin(response.url, u) for u in image.extract() ]

" отсутствует схема в url-адресе запроса "означает, что вам не хватает части" http:// " url-адреса, скорее всего, потому, что ваши URL-адреса относительны и должны быть абсолютными.