继承自BaseHander的类,而非直接继承BaseHandler,引用失败
运行代码如下:
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# Created on 2017-04-19 12:07:53
# Project: http
from pyspider.libs.base_handler import *
import json
import time
class BBSBaseHandler(BaseHander):
'''this class write into a file'''
def _on_cronjob(self, response, task):
# add custom variables at the beginning of starting job
self._start=time.time()
super(BBSBaseHandler, self)._on_cronjob(respnse, task)
def on_finished(self, response, task):
# use custom variables when job endding
tick = time.tiem()-self._start
class Handler(BBSBaseHandler):
'''inherit class from a file'''
crawl_config = {
}
@every(minutes=1)
def on_start(self):
url = 'http://httpbin.org/get'
self.crawl(url, callback=self.index_page)
@config(0)
def index_page(self, response):
return json.load(respnse.content)
报错:
Traceback (most recent call last):
File "/home/kidd/www/pyspider/pyspider/processor/project_module.py", line 51, in build_module
module = loader.load_module(project['name'])
File "/home/kidd/www/pyspider/pyspider/processor/project_module.py", line 176, in load_module
six.exec_(code, mod.__dict__)
File "<http>", line 9, in <module>
NameError: name 'BaseHander' is not defined
想要的结果:
例如在项目外部一文件, 继承自BaseHander
, 计算运行所耗时间.
当然不只是计算耗时.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
BaseHandler
另外,你不能在类中使用成员变量,pyspider 设计为分布式运行,不保证使用同一个实例运行。