這是蜘蛛呼叫從管道蜘蛛的方法 - Python的Scrapy
class TicketsSpider(scrapy.Spider):
def __set_last_start_date(self, dateString):
#code here
這是管道
class TicketsPipeline(object):
def spider_closed(self, spider):
spider.__set_last_start_date(spider.lastAdScrapedDate)
@classmethod
def from_crawler(cls, crawler):
pipeline = cls()
crawler.signals.connect(pipeline.spider_closed, signals.spider_closed)
return pipeline
我想從spider_closed()
方法調用__set_last_start_date()
功能。但我收到此錯誤
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/twisted/internet/defer.py", line 149, in maybeDeferred
result = f(*args, **kw)
File "build/bdist.linux-x86_64/egg/pydispatch/robustapply.py", line 55, in robustApply
File "tickets/pipelines.py", line 236, in spider_closed
spider.__set_last_start_date(spider.lastAdScrapedDate)
AttributeError: 'TicketsSpider' object has no attribute '_TicketsPipeline__set_last_start_date'
2016-12-13 02:49:53 [scrapy] INFO: Dumping Scrapy stats:
我可以向你保證,我可以得到spider.lastAdScrapedDate
但我無法調用spider.__set_last_start_date
你可以調用任何其它蜘蛛的方法?是否正確定義了__set_last_start_date?也許你需要用調試器進行調查 –
我可以得到'spider.lastAdScrapedDate',但我無法調用'spider .__ set_last_start_date' – Umair
我在說的是方法,而不是屬性。爲什麼錯誤提到'_TicketsPipeline__set_last_start_date'而不是'TicketsSpider'對象沒有屬性'__set_last_start_date''?嘗試使用pdb –