如何在scrapy中使用项目字段订购xml?

 hosion0723 发布于 2023-02-10 11:57

我写了一个蜘蛛,它会抓取一个网页并填充一个项目中的字段.该项目包含以下字段

class exampleitem():
    ex1 = Field()
    ex2 = Field()
    ex3 = Field()
    ... and so forth

当我刮擦并导出到xml文件时,字段的顺序变得混乱并返回类似这样的内容


    
          xyz  
          abc  
          ghi  
    
    ... so forth

我想这样做,以便xml的格式按照它在我的item.py文件的Fields()中编写的确切顺序.

我一直在做研究过去一小时左右,我知道它与我的管道和使用xmlitemexporter有关,但我根本不知道如何定制我的管道甚至从哪里开始.

简而言之,我在行话中迷失方向,如果有人能指出我的方向,或者给我一个简短的示例代码,我将如何开始格式化我的剪切项目,我会很感激!

非常感谢

1 个回答
  • scrapy项是python dict的包装器,将以不可预测的顺序返回项字段

    def keys(self):
        return self._values.keys()
    

    更改您可以在您的项目中覆盖此功能,如:

    class exampleitem(Item):
        ex1 = Field()
        ex2 = Field()
        ex3 = Field()
    
        def keys(self):
            return ['ext1', 'ext2', 'ext3']
    

    或者,以更通用的方式实现DictItem并使用python的OrderedDict而不是它当前使用的python的默认dict.

    2023-02-10 11:59 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有