Отсутствует схема в URL запроса
Если вы давно застряли на этой ошибке, следующее сообщение об ошибке выглядит следующим образом:
File "C:\Python27\lib\site-packages\scrapy-0.20.2-py2.7.egg\scrapy\http\request\__init__.py", line 61, in _set_url
raise ValueError('Missing scheme in request url: %s' % self._url)
exceptions.ValueError: Missing scheme in request url: h
Скрап код: я
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import Selector
from scrapy.http import Request
from spyder.items import SypderItem
import sys
import MySQLdb
import hashlib
from scrapy import signals
from scrapy.xlib.pydispatch import dispatcher
# _*_ coding: utf-8 _*_
class some_Spyder(CrawlSpider):
name = "spyder"
def __init__(self, *a, **kw):
# catch the spider stopping
# dispatcher.connect(self.spider_closed, signals.spider_closed)
# dispatcher.connect(self.on_engine_stopped, signals.engine_stopped)
self.allowed_domains = "domainname.com"
self.start_urls = "http://www.domainname.com/"
self.xpaths = '''//td[@class="CatBg" and @width="25%"
and @valign="top" and @align="center"]
/table[@cellspacing="0"]//tr/td/a/@href'''
self.rules = (
Rule(SgmlLinkExtractor(restrict_xpaths=(self.xpaths))),
Rule(SgmlLinkExtractor(allow=('cart.php?')), callback='parse_items'),
)
super(spyder, self).__init__(*a, **kw)
def parse_items(self, response):
sel = Selector(response)
items = []
listings = sel.xpath('//*[@id="tabContent"]/table/tr')
item = IgeItem()
item["header"] = sel.xpath('//td[@valign="center"]/h1/text()')
items.append(item)
return items
я уверен, что эточто-то делать с URL, который яя прошу scrapy следовать в LinkExtractor. При извлечении их в оболочку они выглядят примерно так:
data=u'cart.php?target=category&category_id=826'
По сравнению с другим URL, извлеченным из рабочего паука: я
data=u'/path/someotherpath/category.php?query=someval'
Мы рассмотрели несколько вопросов о SO, таких какЗагрузка картинок с помощью скрапа но после прочтения я думаю, что у меня может быть немного другая проблема.
Я также взглянул на это -http://static.scrapy.org/coverage-report/scrapy_http_request___init__.html
который объясняет, что ошибка выдается, если self.urls пропускает ":", глядя на start_urls I 'Я определил, что могуЯ не понимаю, почему эта ошибка будет показана, поскольку схема четко определена.
Спасибо за прочтение,
Тоби