Я начинаю с scrapy, и у меня есть первая настоящая проблема. Это загрузка картинок. Так это мой паук.
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.selector import HtmlXPathSelector
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from example.items import ProductItem
from scrapy.utils.response import get_base_url
import re
class ProductSpider(CrawlSpider):
name = "product"
allowed_domains = ["domain.com"]
start_urls = [
"http://www.domain.com/category/supplies/accessories.do"
]
def parse(self, response):
hxs = HtmlXPathSelector(response)
items = []
sites = hxs.select('//td[@class="thumbtext"]')
number = 0
for site in sites:
item = ProductItem()
xpath = '//div[@class="thumb"]/img/@src'
item['image_urls'] = site.select(xpath).extract()[number]
item['image_urls'] = 'http://www.domain.com' + item['image_urls']
items.append(item)
number = number + 1
return items
Когда я цитирую ITEM_PIPELINES
и IMAGES_STORE
в settings.py
, таким образом я получаю правильный URL-адрес изображения, которое хочу загрузить (скопируйте и вставьте его в браузер для проверки).
Но когда я отменяю их цитирование, я получаю следующую ошибку:
raise ValueError('Missing scheme in request url: %s' % self._url')
exceptions.ValueError: Missing scheme in request url:h
и я не могу загрузить свои изображения.
Я искал целый день и не нашел ничего полезного.