【问题标题】:scrapy error :exceptions.ValueError: Missing scheme in request url:scrapy 错误:exceptions.ValueError:请求 url 中缺少方案:
【发布时间】:2015-02-15 10:55:37
【问题描述】:

我使用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)

【问题讨论】:

    标签: python scrapy


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      image_urls 字段应该是一个列表,而不是一个字符串。

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

      如果你这样做了,但仍然引发异常,你抓取的 url 似乎是相对路径。

      ImagePipeline不知道你的主机,所以不能生成绝对路径去爬取。

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

      【讨论】:

      • 在 python 3.6 中是 from urllib.parse import urljoin...[urljoin(...
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-30
      • 2014-02-01
      • 1970-01-01
      • 2017-07-02
      • 2020-12-09
      • 1970-01-01
      相关资源
      最近更新 更多