pyspider怎么维护一个全局变量

发布于 2022-09-04 20:39:29 字数 890 浏览 15 评论 0

我需要采集一个列表,最后把所有的列表的结果生成一个json字段。

但是我发现,pyspider没办法创建一个全局变量。

每个列表的url,callback过去的是时候,每callback一次,就刷新了一次那个全局变量,最后只能留下一个列表的结果

就像下面的代码,大概写的,每一个list的callback都会让dbObj初始化,然后在更新,而不是在之前的值基础上更新

应该怎么维护一个全局变量啊在pyspider

class Handler(BaseHandler):
    
    
    dbObj = {
        
    }
    def list_page(self,response):
        self.crawl('list1',callback=self.detail_page)
        self.crawl('list2',callback=self.detail_page)
        self.crawl('list3',callback=self.detail_page)
        self.crawl('list4',callback=self.detail_page)
        self.crawl('list5',callback=self.detail_page)
        self.crawl('list6',callback=self.detail_page)
        self.crawl('list7',callback=self.detail_page)
        self.crawl('list8',callback=self.detail_page)
        
    def tail_page(self,response):
        object['list'+str(i)] = response.text

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

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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

十六岁半 2022-09-11 20:39:29

用save吧?
self.crawl('list1',callback=self.detail_page, save={key: value})
detail_page里就有save中存的值了

与君绝 2022-09-11 20:39:29

「我需要采集一个列表,最后把所有的列表的结果生成一个json字段。」 抓取完后在外部完成

不甘平庸 2022-09-11 20:39:29

题主的代码里我看到了dbObj,我又看到了 object,是不是应该写成self.dbObj?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文