Я сталкиваюсь с ошибкой значения при загрузке / очистке изображений от scrapy spider. Я использую Image конвейеры. - PullRequest
0 голосов
/ 29 сентября 2018

Я получил сообщение об ошибке значения:

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

ValueError: Missing scheme in request url: h

Мой код items.py:

class Brand(scrapy.Item):
    name = scrapy.Field()
    url = scrapy.Field()
    brand_image = scrapy.Field()
    image_urls = scrapy.Field()
    images = scrapy.Field()

Мой setting.py:

BOT_NAME = 'scraper'    
SPIDER_MODULES = ['scraper.spiders']
NEWSPIDER_MODULE = 'scraper.spiders'
ITEM_PIPELINES = {'scrapy.contrib.pipeline.images.ImagesPipeline': 1}
IMAGES_STORE = 'images'

Мойкод паука:

import scrapy
import json
from scraper.items import Brand


class QuotesSpider(scrapy.Spider):
    name = "brandDetails"
    allowed_domains = ["ozhat-turkiye.com"]
    with open('brands.json') as data_file:
        data_item = json.load(data_file)
        start_urls = list()
    for item in data_item:
        start_urls.append(item["url"])

    def parse(self, response):
        item = Brand()
        name = response.css("div.th::text").extract_first()
        name = name.replace('Products of ', '')
        item['name'] = name
        item['url'] = response.url
        urls = response.css("div.productimage img::attr(src)").extract_first()
        urls = response.urljoin(urls)
        item['image_urls'] = urls
        yield item

1 Ответ

0 голосов
/ 30 сентября 2018
Missing scheme in request url

всегда означает, что ваш URL-адрес недействителен, его пропущены http:// и https://

Так что добавьте https:// или http:// перед URL-адресом изображения

`https://` + response.css("div.productimage img::attr(src)").extract_first()
...