【发布时间】:2012-02-05 02:54:01
【问题描述】:
我从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
当我在settings.py 中引用ITEM_PIPELINES 和IMAGES_STORE 时,我会得到要下载的图片的正确URL(复制粘贴到浏览器中进行检查)。
但是当我取消引用那些我得到以下错误:
raise ValueError('Missing scheme in request url: %s' % self._url')
exceptions.ValueError: Missing scheme in request url:h
我无法下载我的图片。
我已经搜索了一整天,但没有发现任何有用的信息。
【问题讨论】:
-
您有处理网址的管道吗?您是否在 settings.py 中注册了您的管道? doc.scrapy.org/en/latest/topics/images.html,很好的参考。您是否具有写入 IMAGE_STORE 路径的适当权限?
-
是的,我按照所说的做了一切,实际上我使用了那个参考,但仍然......没有