Python 创建一个刮痒的蜘蛛。名称错误:名称';自我';没有定义
我刚开始学习Scrapy,我想尝试一些教程,用Scrapy创建一个蜘蛛 这是我目前的代码: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/
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):