我正在寻找一些想法,我如何才能解决一个设计问题,我将面临着建立一个网络刮刀刮多个网站。编写抓取器不是问题,匹配来自不同站点的数据(可能有很小的差异)才是问题。
为了通用起见,假设我从两个或更多不同的站点上抓取了类似的东西:
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或B时,随着时间的推移,我可以建立一个失败列表,并将它们存储在每个抓取器的列表中,这样它就可以知道(如果我找到了id=100,那么我就知道名字将是William等)。我不禁觉得这是个垃圾主意!
如果你需要更多的信息,或者如果你认为我的描述有点无聊,请让我知道!
谢谢,
DMcB
发布于 2014-05-31 20:35:00
有许多算法(commons-codec上提供的许多常用算法)可以尝试识别相似或相同的名称。我不知道有什么对“昵称”有实际帮助。
https://stackoverflow.com/questions/23970057
复制相似问题