我正在尝试为特定行业构建垂直(元)搜索引擎。我正在尝试做类似于“Indeed.com”(求职引擎)和“hotelscombined.com”(酒店搜索引擎)的事情。我想知道这两个搜索引擎如何构建他们的搜索结果?
1)它是否使用其服务的其他网站的API? (对我来说很奇怪,因为一些结果来自小而原始的网站)。
2)其他网站是否会对这些搜索引擎发布更新? (上面也很奇怪)
3)他们是否在内部了解并为他们所服务的每个网站创建地图? (如果是这样,那么他们可能需要不断监控这些网站的结构是否有任何变化。似乎我很容易出错。)
4)还有其他可能性吗?
我甚至不知道从哪里开始,所以任何指向正确方向的人都非常感激。 (书籍,教程,提示,想法......)
由于
答案 0 :(得分:0)
它主要是1和3的混合。理想情况下,该网站将提供他们公开和记录的某种API。如果没有,您必须data scraping。基本上,您对其页面进行反向工程。如果他们通过未记录的API异步获得结果,您可以使用该API以及(直到他们进行重大更改)。否则,只需将文本直接从HTML中提取出来即可。
我不知道更高级的技术,因为我自己不这样做,但我的几个熟人已经开始研究需要通过体育比分做这类事情的移动应用程序等(不是用于搜索,而是相同的要求 - 将其他人的数据输入我们的数据库)。低技术从HTML中拉出来,直到他们改变HTML并破坏所有内容"是他们工作的标准做法。
2是可能的,但要做到这一点,你必须与你想要使用的每个数据源做出业务安排,或者为每个人想要上传他们的数据获得足够的市场存在。
另外,在实际搜索时你不会这样做(除非你有其他约束,正如Charles Duffy在评论中指出的那样)。您运行一个定期发出的进程,获取它可以找到的所有数据,然后将其插入您自己的数据库中,然后进行搜索。这允许您将数据收集与数据搜索分离 - 您的搜索页面不必知道并处理来自刮刀的错误,并且刮刀只需要获取所有数据"来自每个来源,而不是从您的网站转换查询以搜索每个来源。