Python Scrapy - 输出 XML 个同名元素
Python Scrapy - output XML elements with same name
我的目标是生成如下所示的 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',
}
但是我需要每个输出的元素都具有相同的名称。
我对 scrapy 没有任何好的经验,但根据提供的来源,你似乎正在生成一本字典。字典不能包含多个具有相同名称的项目。提供的代码段的最佳选择是以下之一:
- 每个 image_link 一个接一个;
- 或者(如果您需要在一次迭代中产生所有结果)将其作为类似集合列表的形式产生。
yield [
('addional_image_links', 'test1'),
('addional_image_links', 'test2'),
('addional_image_links', 'test3'),
[
我的目标是生成如下所示的 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',
}
但是我需要每个输出的元素都具有相同的名称。
我对 scrapy 没有任何好的经验,但根据提供的来源,你似乎正在生成一本字典。字典不能包含多个具有相同名称的项目。提供的代码段的最佳选择是以下之一:
- 每个 image_link 一个接一个;
- 或者(如果您需要在一次迭代中产生所有结果)将其作为类似集合列表的形式产生。
yield [
('addional_image_links', 'test1'),
('addional_image_links', 'test2'),
('addional_image_links', 'test3'),
[