Python 刮片请求返回未实现错误

Python 刮片请求返回未实现错误,python,request,scrapy,Python,Request,Scrapy,我的密码坏了,我一点线索也没有! 我想刮宜家网站,我首先设计了一个爬行蜘蛛,它不够具体,无法检索网页的每个链接。因此,我设计了一个基本的Spider,使用了屈服请求方法 这是我的密码: class IkeaSpider(scrapy.Spider) : name = "Ikea" allower_domains = ["http://www.ikea.com/"] start_urls = ["http://www.ikea.com/fr/fr/catal

我的密码坏了,我一点线索也没有! 我想刮宜家网站,我首先设计了一个爬行蜘蛛,它不够具体,无法检索网页的每个链接。因此,我设计了一个基本的Spider,使用了屈服请求方法

这是我的密码:

class IkeaSpider(scrapy.Spider) :        
    name = "Ikea"
    allower_domains = ["http://www.ikea.com/"]
    start_urls = ["http://www.ikea.com/fr/fr/catalog/productsaz/8/"]



    def parse_url(self, response):

        for sel in response.xpath('//div[@id="productsAzLeft"]'):

            base_url = 'http://www.ikea.com/'
            follow_url = sel.xpath('//span[@class="productsAzLink"]/@href').extract()
            complete_url = urlparse.urljoin(base_url, follow_url)
            request = Request(complete_url, callback = self.parse_page)

            yield request


    def parse_page(self, response):
下面是错误日志:

2016-01-04 22:06:31 [scrapy] ERROR: Spider error processing <GET http://www.ikea.com/fr/fr/catalog/productsaz/8/> (referer: None)
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/twisted/internet/defer.py", line 588, in _runCallbacks
    current.result = callback(current.result, *args, **kw)
  File "/usr/local/lib/python2.7/dist-packages/scrapy/spiders/__init__.py", line 76, in parse
    raise NotImplementedError
NotImplementedError
2016-01-04 22:06:31[scrapy]错误:蜘蛛错误处理(参考:无)
回溯(最近一次呼叫最后一次):
文件“/usr/local/lib/python2.7/dist-packages/twisted/internet/defer.py”,第588行,在运行回调中
current.result=回调(current.result,*args,**kw)
文件“/usr/local/lib/python2.7/dist-packages/scrapy/spider/__-init__.py”,第76行,在parse中
引发未实现的错误
未实现错误

您的spider需要一个
parse
方法,它是所有初始请求的默认回调。您只需将
parse\uURL
方法重命名为
parse
,它就可以正常工作了

class IkeaSpider(scrapy.Spider) :

    name = "Ikea"
    allower_domains = ["http://www.ikea.com/"]
    start_urls = ["http://www.ikea.com/fr/fr/catalog/productsaz/8/"]


    def parse(self, response):

        for sel in response.xpath('//div[@id="productsAzLeft"]'):

            base_url = 'http://www.ikea.com/'
            follow_url = sel.xpath('//span[@class="productsAzLink"]/@href').extract()
            complete_url = urlparse.urljoin(base_url, follow_url)
            request = Request(complete_url, callback = self.parse_page)

            yield request
选择
您还可以定义
start\u requests
方法,并使用定义的
callback
参数手动生成
scrapy.requests

如果您只想从spider使用
start\u url
,您必须实现
parse
方法,您可以检查一下

parse
方法是从
start\u URL
中的URL发出的请求的默认回调

如果要从一开始就控制请求,还可以使用
start\u requests
方法