如何在没有 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