如何使用自己网站的关键字搜索多个搜索引擎?喜欢比较网站

时间:2017-10-29 23:27:42

标签: javascript reactjs meteor

我正在使用Meteor.js和React构建应用程序。它结合使用TextRazor的API(NLP)从文本正文中提取关键字。然后,关键字将用于查询不同的网站以带回结果,例如价格比较网站的工作方式(尽管现在我只会合并Google并在我获得它之后构建我想要搜索的其他网站工作)。

我如何构建搜索功能?

谢谢

2 个答案:

答案 0 :(得分:0)

我认为对于您要搜索的每个外部网站,您必须确定它是否公开了搜索API。如果是这样,您只需使用本地关键字集通过API查询,并希望您不会超出每个网站的API查询限制(如果您实时查询,则可能超过每个站点的限制。)

如果外部网站没有公开搜索API,那么您可以抓取它或下载它的内容(假设您可以合法地这样做...假设很多),然后您将创建一个网站内容的本地索引。这意味着您需要某种本地搜索引擎平台(例如SOLR,elasticsearch等)以及相当肥胖的ETL管道,以将网站内容转换为本地索引中的必要条目或文档。然后,您将使用关键字查询本地构建的索引。

答案 1 :(得分:0)

此答案适用于使用您提取的关键字查询Google。

一般用途

为了使这个工作并为您的项目实现其他可搜索的API,您应该熟悉使用REST API。 Check the Meteor Guide以及其他相关的信息来源elsewhere

可能有很多方法可以做到这一点。但这是作为首发的常用方法:

您可以通过阅读其API文档并将其应用于应用程序的源代码来实现其他来源。

替代方法

您还可以从应用程序的前端查询google,而不是让服务器端参与其中。来自Google文档的示例:

<html>
  <head>
    <title>JSON/Atom Custom Search API Example</title>
  </head>
  <body>
    <div id="content"></div>
    <script>
      function hndlr(response) {
      for (var i = 0; i < response.items.length; i++) {
        var item = response.items[i];
        // in production code, item.htmlTitle should have the HTML entities escaped.
        document.getElementById("content").innerHTML += "<br>" + item.htmlTitle;
      }
    }
    </script>
    <script src="https://www.googleapis.com/customsearch/v1?key=<span class="apiparam">YOUR-KEY</span>&amp;cx=017576662512468239146:omuauf_lfve&amp;q=cars&amp;callback=hndlr">
    </script>
  </body>
</html>