scrapy错误:exceptions.ValueError:请求url中缺少方案:

时间:2014-12-17 00:17:05

标签: python scrapy

我使用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 个答案:

答案 0 :(得分:17)

image_urls字段应该是列表,而不是str。

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

如果您这样做,并且仍然引发异常,那么您抓取的网址似乎是相对路径。

ImagePipeline并不知道您的主机,因此无法生成抓取的绝对路径。

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

答案 1 :(得分:9)

“请求网址中缺少方案”意味着您缺少网址的“http://”部分,很可能是因为您的网址是相对的,应该是绝对的。