如何在没有 SAME ORIGIN POLICY 的情况下将 Google 结果放入我们的网页

Posted

技术标签:

【中文标题】如何在没有 SAME ORIGIN POLICY 的情况下将 Google 结果放入我们的网页【英文标题】:How to get Google results into our webpage without SAME ORIGIN POLICY 【发布时间】:2014-05-18 18:34:27 【问题描述】:

我们的网页有自己的表格。我们想在我们的网页中显示 google(www.google.com/scholar) 结果。我们试过了

jQuery, Ajax

html framing (iFrame, frameset)

所有这些都有SAMEORIGIN 问题。

我们也尝试使用new tab,发现它有同样的问题here。所有这些解决方案似乎只适用于 http://www.google.com/custom 而没有其他谷歌网站。

还有其他办法吗?

【问题讨论】:

使用Google api ? 【参考方案1】:

Google 会阻止您这样做。您可以设置一些服务器端代码来抓取结果,但这几乎肯定会被 Google 阻止。如果这符合您的需要,您可以创建一个表单,将您的搜索提交到该页面并在新选项卡中打开,如下所示:

<form action="http://scholar.google.co.uk/scholar" method="get" target="_blank">
  <input type="text" name="q">
  <input type="submit" value="Search">
</form>

此处的示例:http://jsfiddle.net/v8qG8/

更新:

我提到谷歌会阻止对其服务的抓取,但我刚刚找到了这样做的第三方库。不确定谷歌对此的看法。 http://www.icir.org/christian/scholar.html

【讨论】:

那么,如何获取用户当前所在的google学术页面的URL呢?我们可以跟踪用户浏览的谷歌网页吗? 您的意思是用户点击了哪个搜索结果?如果是这样,除非您使用 api,否则您无法跟踪它。 @tekrat 建议有一个搜索 API,但它是用于网络搜索而不是 Scholar。 @Ryan 谢谢,我们试过了。这不是我们现在正在寻找的答案。 @Ryan 我们想跟踪 google 学者网页的 URL。 @Dinesh 很明显,您尝试做的事情是不道德的。谷歌阻止通过某些媒体访问并允许其他人通过他们的 API 访问是有原因的。我的建议:停止你正在做的事情,只提供一个 Google 学者的链接。【参考方案2】:

您可能还想查看 Google 的自定义 API。您每天可以获得 100 次免费搜索,然后支付 5 美元 / 1000 次搜索。如果你缓存结果或做低音量,这可能对你有用。

搜索 API:https://developers.google.com/custom-search/json-api/v1/overview 所有 Google API:https://developers.google.com/apis-explorer/#p/

【讨论】:

但是谷歌学者没有API。【参考方案3】:

我自己回答。目前还没有解决方案。

【讨论】:

以上是关于如何在没有 SAME ORIGIN POLICY 的情况下将 Google 结果放入我们的网页的主要内容,如果未能解决你的问题,请参考以下文章

获取 jQuery UI 主题列表 - 从 URL (same-origin-policy)

same-origin policy----wikipedia

iframes 和 Same-Origin-Policy 和反向代理 hack

跨域之同源策略 Same-origin policy

浏览器同源政策及其规避方法(转)

allow-same-origin 不允许我访问***对象的属性