Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 创建一个刮痒的蜘蛛。名称错误:名称';自我';没有定义_Python_Scrapy - Fatal编程技术网

Python 创建一个刮痒的蜘蛛。名称错误:名称';自我';没有定义

Python 创建一个刮痒的蜘蛛。名称错误:名称';自我';没有定义,python,scrapy,Python,Scrapy,我刚开始学习Scrapy,我想尝试一些教程,用Scrapy创建一个蜘蛛 这是我目前的代码: import scrapy class QuotesSpider(scrapy.Spider): name = "quotes" def start_request(self): urls = [ 'http://quotes.toscrape.com/page/1/', 'http://quotes.toscrape.com/page/2/

我刚开始学习Scrapy,我想尝试一些教程,用Scrapy创建一个蜘蛛

这是我目前的代码:

import scrapy

class QuotesSpider(scrapy.Spider):
  name = "quotes"

  def start_request(self):
      urls = [
          'http://quotes.toscrape.com/page/1/',
          'http://quotes.toscrape.com/page/2/'
      ]
      for url in urls:
          yield scrapy.Request(url=url, callback=self.parse)

  def parse(self, response):
      page = response.url.split("/")[-2]
      filename = "quotes-%s.html" % page
      with open(filename, "wb") as f:
          f.write(response.body)
      self.log('saved file %s' % filename)
作为报告,我得到以下信息:

Python 3.6.5 | Anaconda,Inc.|(默认,2018年3月29日,13:32:41)[MSC v.1900 64位(AMD64)]
>>>进口羊瘙痒
>>>self.log('保存的文件%s'%filename)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
NameError:未定义名称“self”

我是个新手,不知道如何解决这个问题。希望你能帮助我。:)

您应该在anaconda中的项目目录中使用
scrapy crawl quotes
启动爬行器

您在启动请求s()中有一个输入错误:


你能检查
start\u request
parse
functions@Shijith应该是正确的,因为
start\u request
parse
都是函数,我认为问题不在于它们(请参见
self
作为本地变量)。请告诉我们您如何称呼它-查看错误和stdin,我假设您在交互式解释器中测试它,对吗?请复制您在那里写的内容以及它写回的所有内容(包括该错误),并对您的问题进行编辑。:)@h4z3抱歉,我不知道交互式解释器是什么意思:(我使用VS代码并运行代码(这里是全部代码),Python终端返回了我开始时遇到的错误“scrapy startproject demo_project”并将python文件放入项目中的“spider”文件夹我猜您调用的是
QuotesSpider.scrape
而不是
QuotesSpider().scrape
?这个答案应该可以解决您的问题。您只是启动了一个控制台并引用了
self
,其中没有定义它。
def start_requests(self):