我正在尝试为一个特定的行业建立一个垂直(元)搜索引擎。我正在尝试做一些类似于"indeed.com“(工作搜索引擎)和"hotelscombined.com”(酒店搜索引擎)的东西。我想知道这两个搜索引擎是如何构建它们的搜索结果的?
1)它是否使用其他网站的API来提供结果?(对我来说似乎很奇怪,因为一些结果来自小而原始的站点)。
2)其他网站会更新这些搜索引擎吗?(看起来也很奇怪,如上所述)
3)他们是否在内部理解并为他们提供结果的每个网站创建地图?(如果是这样的话,他们可能需要不断地监控这些网站的结构,看是否有任何变化。在我看来很容易出错)。
4)还有其他可能性吗?
我甚至不知道从哪里开始,所以任何正确方向的指针都是非常感谢的。(书籍、教程、提示、想法……)
谢谢
发布于 2014-10-30 23:55:27
它主要是1和3的混合。理想情况下,站点应该有某种他们公开和记录的API。如果不是,则必须执行data scraping。基本上,你是在对他们的页面进行逆向工程。如果它们通过未记录的API异步获得结果,您也可以使用该API (直到它们做出重大更改)。否则,只需将文本直接从HTML中提取出来即可。
我不知道有什么更先进的技术,因为我不是自己做的,但我的几个熟人已经开始开发移动应用程序,这些应用程序需要用到体育比分之类的东西(不是为了搜索,而是同样的要求--把别人的数据放到我们的数据库里)。低技术的“把它从HTML中拉出来,直到他们改变HTML并破坏一切”是他们工作的标准实践。
2是可能的,但要做到这一点,你必须要么与你想要使用的每个数据源进行业务安排,要么获得足够的市场存在,让每个人都想上传他们的数据。
此外,在实际搜索时不要这样做(除非您有其他限制,就像Charles Duffy在他的评论中指出的那样)。您运行一个定期输出的过程,获取它能找到的所有数据,并将其插入到您自己的数据库中,然后进行搜索。这允许您将数据收集与数据搜索解耦-您的搜索页面将不必知道并处理来自抓取器的错误,而抓取器只需从每个源“获取所有数据”,而不是能够转换来自您的站点的查询来搜索每个源。
https://stackoverflow.com/questions/26657345
复制相似问题