0

情况:

我抓取的每个页面都有带有 a和 a 的<input>元素title=value=

我不知道页面上会出现什么。

我希望将所有收集的数据放在最后一个表中,每个标题都有一个列。

所以基本上,我需要每一行数据与所有其他数据对齐,如果一行没有某个​​元素,那么它应该是空白的(但必须有一些东西来保持对齐)。

例如。

第一页有:{animal: cat, colour: blue, fruit: lemon, day: monday}

第二页有:{animal: fish, colour: green, day: saturday}

第三页有:{animal: dog, number: 10, colour: yellow, fruit: mango, day: tuesday}

那么我的结果表应该是:

animal | number | colour | fruit | day
cat    | none   | blue   | lemon | monday
fish   | none   | green  | none  | saturday
dog    | 10     | yellow | mango | tuesday

虽然保持对的顺序会很好title value,但我知道字典不会这样做。

所以基本上,我需要从所有titles(按顺序保存但以某种方式合并在一起)生成列

在不知道所有可能的标题并明确指定要放入的值的顺序的情况下,最好的方法是什么?

4

2 回答 2

2

你需要一个多通道算法。记住字典列表中的所有抓取页面。在第一遍中,遍历这个列表并收集 set() 中的所有标题,并创建一个排序(例如,转换为列表按字母顺序排序)。

在第二遍中,您打印表格并将生成的排序用作列名,根据需要从字典中提取值(默认为空以处理缺失值),例如使用 dict.get(name, "")。

于 2010-05-05T10:34:15.323 回答
0

我建议您可以使用可选参数,或者使用重载的构造函数来填充值:

Page(string animal = string.empty, 
int number = -999, string colour = string.empty, day = string.empty )

要么将每个键/值对存储为类型对象,然后从您的页面中转换它。

于 2010-05-05T10:31:50.197 回答