我正在寻找一些关于如何解决设计问题的想法,我将面临构建网络刮刀以刮取多个网站的问题。编写刮刀不是问题,匹配来自不同站点的数据(可能有很小的差异)是。
为了通用,我假设我正在从两个或更多不同的网站上抓取这样的东西:
public class Data {
public int id;
public String firstname;
public String surname;
....
}
如果我从两个不同的网站上抓取这个,我会遇到以下情况:
网站A:id = 100,firstname = William,surname = Doe
网站B:id = 1974,firstname = Bill,surname = Doe
基本上,我想将这两组数据视为相同(它们是同一个人,但每个站点的名称略有不同)。我正在寻找可以解决这个问题的设计解决方案。
我提出的唯一想法是从第三个位置抓取数据并将其用作参考列表。然后,当我刮到站点A或BI时,可以随着时间的推移,建立一个失败列表并将它们存储在每个刮板的列表中,以便它可以知道(如果我发现id = 100,那么我知道名字将是William等)。我无能为力,但觉得这是一个垃圾的想法!
如果您需要更多信息,或者如果您认为我的描述有点儿,请告诉我们!
谢谢,
DMCB