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

use*_*364 10 python scrapy

try except用来避免错误,但我的终端仍显示错误,但没有显示日志消息:

raise ValueError('Missing scheme in request url: %s' % self._url)
exceptions.ValueError: Missing scheme in request url: 
Run Code Online (Sandbox Code Playgroud)

当scrapy没有得到image_urls时,如何避免此错误?
请指导我,非常感谢.

    try:

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

soo*_*oot 17

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

item['image_urls'] = image.extract()
Run Code Online (Sandbox Code Playgroud)

如果你这样做,并且仍然提出异常,那么你所抓到的网址似乎是相对路径.

ImagePipeline不知道你的主机,所以它不能产生抓取的绝对路径.

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


bos*_*jak 9

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