【问题标题】:Google Custom Search sniffing and ruining mobile results谷歌自定义搜索嗅探和破坏移动搜索结果
【发布时间】:2011-10-11 22:35:35
【问题描述】:

我正在开发一个 Google 自定义搜索实现,它使用选项将搜索结果加载到另一个页面的 iframe 中。

使用此 URL 作为 iframe 的来源(包括示例查询):

http://www.google.com/cse?cx=013856813593859657536:ss10an3on4k&cof=FORID:11&as_q=test

如果我在桌面浏览器上加载此 URL,则会返回自定义搜索结果。如果我的用户代理是移动浏览器(目前在 Safari iOS 4.3 和 Android 中遇到此问题),我会得到一个带有 Javascript 搜索框的空白页面。这导致我的用户必须输入两次搜索词。这是返回页面的截图:

http://csuh.tv/0s032D1S3S0F3X161i16

在这方面,Google 似乎在嗅探用户代理(嘘),并破坏了移动搜索结果。我需要 (1) 使用一些我在他们的文档中没有找到的自定义搜索 API 选项来解决这个问题,或者 (2) 防止他们嗅探和搞砸移动搜索结果。


更新:我通过向移动客户端提供一个搜索框来解决这个问题,该搜索框只需提交到带有 site: 术语的常规 Google 搜索(即 http://google.com/search)。下面的解决方案也可以。

【问题讨论】:

    标签: html mobile-website


    【解决方案1】:

    当您在搜索框中输入内容并按 Enter 键时,您会得到一个不同的 URL。您可能可以将 iframe 的 src 更改为以下 URL,它应该可以工作:

    http://www.google.com/cse?cx=013856813593859657536:ss10an3on4k&cof=FORID:11&as_q=test#gsc.tab=0&gsc.q=test

    作为最后的手段,假设它符合 Google 的 TOS,您可以让 iframe 指向您服务器上的一个页面,该页面充当代理从 Google 获取结果并输出结果 HTML。这样您就可以完全控制用户代理。

    www.mywebsite.com/mysearchproxy.php?search=test
    

    【讨论】:

    • 到目前为止,这似乎是一个很好的解决方法。它仍然会在移动版上显示额外的搜索表单,但至少您不必输入两次查询。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-18
    • 2012-04-10
    • 2018-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多