pyspider 使用 on_message 方法没有返回result

发布于 2022-09-07 11:50:54 字数 800 浏览 24 评论 0

使用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)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文