ERROR: Spider error processing <GET - .parse callback not defined

ERROR: Spider error processing <GET - .parse callback not defined

我对 python 和 scrapy 非常陌生。我已尝试 运行ning 现有代码,但抛出了这些错误。我正在 运行在 windows 10 上安装最新版本的 scrapy,并使用 Visual Code Studio 运行 我的测试等等

终端调试

2020-12-07 20:52:52 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newegg.com/robots.txt> (referer: None)
2020-12-07 20:52:52 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newegg.com/asus-radeon-rx-6800-rx6800-16g/p/N82E16814126473> (referer: None)
2020-12-07 20:52:52 [scrapy.core.scraper] ERROR: Spider error processing <GET https://www.newegg.com/white-bluedio-ht-wireless/p/0TH-0357-00002?Item=9SIACD56WH3830> (referer: None)
Traceback (most recent call last):
  File "C:\ProgramData\Miniconda3\lib\site-packages\twisted\internet\defer.py", line 654, in _runCallbacks
    current.result = callback(current.result, *args, **kw)
  File "C:\ProgramData\Miniconda3\lib\site-packages\scrapy\spiders\__init__.py", line 90, in _parse
    return self.parse(response, **kwargs)
  File "C:\ProgramData\Miniconda3\lib\site-packages\scrapy\spiders\__init__.py", line 93, in parse
    raise NotImplementedError(f'{self.__class__.__name__}.parse callback is not defined')
NotImplementedError: NeweggSpider.parse callback is not defined

egg_spider.py

class NeweggSpider(scrapy.Spider):
    name = "newegg"
    USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) " \
                 "Chrome/43.0.2357.130 Safari/537.36 "
    allowed_domains = ['newegg.com']
    start_urls = [
        "https://www.newegg.com/white-bluedio-ht-wireless/p/0TH-0357-00002?Item=9SIACD56WH3830", ]

def parse(self, response):
   # Finding Product Status.
    my_list = []
    try:
       product = response.xpath("//*[@class='btn btn-primary btn-wide']//text()").get().strip()
       my_list = [product]
       print(f"Product is Currently: {my_list}")
    except AttributeError:
       pass

尽可能以最通俗易懂的方式提供帮助。谢谢!

您需要按照 gangabass 评论缩进您的代码。

import scrapy

class NeweggSpider(scrapy.Spider):
    name = "newegg"
    USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) " \
                 "Chrome/43.0.2357.130 Safari/537.36 "
    allowed_domains = ['newegg.com']
    start_urls = [
        "https://www.newegg.com/white-bluedio-ht-wireless/p/0TH-0357-00002?Item=9SIACD56WH3830", ]

    def parse(self, response):
       # Finding Product Status.
        my_list = []
        try:
           product = response.xpath("//*[@class='btn btn-primary btn-wide']//text()").get().strip()
           my_list = [product]
           print(f"Product is Currently: {my_list}")
        except AttributeError:
           pass