【问题标题】:Python Scrapy - output XML elements with same namePython Scrapy - 输出具有相同名称的 XML 元素
【发布时间】:2021-01-08 12:40:12
【问题描述】:

我的目标是生成如下所示的 XML:

<addional_image_links>test1</addional_image_links>
<addional_image_links>test2</addional_image_links>
<addional_image_links>test3</addional_image_links>

我正在产生这样的刮擦结果:

yield  {
            'addional_image_links': 'test1',
            'addional_image_links': 'test2',
            'addional_image_links': 'test3',
        }

然而实际结果只是第一个:

<addional_image_links>test1</addional_image_links>

如果我更改元素名称,它会起作用:

yield  {
            'addional_image_links_1': 'test1',
            'addional_image_links_2': 'test2',
            'addional_image_links_3': 'test3',
        }

但是我需要每个输出的元素具有相同的名称。

【问题讨论】:

    标签: python xml web-scraping scrapy


    【解决方案1】:

    我对scrapy没有任何好的经验,但根据提供的来源,你似乎正在制作一本字典。字典不能包含多个具有相同名称的项目。提供的代码的最佳选择是以下之一:

    1. 一个一个地输出每个 image_link;
    2. 或者(如果您需要在一次迭代中产生所有结果)将其作为集合列表的形式产生。
    yield  [
                ('addional_image_links', 'test1'),
                ('addional_image_links', 'test2'),
                ('addional_image_links', 'test3'),
            [
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-23
      • 1970-01-01
      • 1970-01-01
      • 2017-07-11
      • 1970-01-01
      相关资源
      最近更新 更多