pyspider 使用 on_message 方法没有返回result

新手上路,请多包涵

使用send_message和on_message方法来处理单个页面返回多个任务结果的情况,并且准备重写on_result方法进一步处理。但是on_message方法返回的msg并没有传递到on_result里面,即result是None.

不知道怎么处理。谢谢。

@config(age=10 * 24 * 60 * 60)
def index_page(self, response):
    response.encoding = 'GBK'
    print(response.doc('title').text())
    for i, each in enumerate(response.doc('.newstable tr').items()):
        msg = dict()
        msg['title'] = each('td:nth-child(1) a').attr('title').strip()
        msg['date'] = each('td:nth-child(2)').text().strip()
        msg['link'] = each('td:nth-child(1) a').attr('href')
        self.send_message(self.project_name, msg,
                          url="{}.false".format(msg['link']))

def on_message(self, project, msg):
    return msg

def on_result(self, result):
    print(result)
阅读 2.2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题