Android 如何从谷歌搜索列表中获取链接的*真实*url?

Android 如何从谷歌搜索列表中获取链接的*真实*url?,android,browser,google-search,Android,Browser,Google Search,我正在android环境下开发一个web浏览器,当我在google中执行搜索时,我会得到google搜索结果列表。这些结果的url如下所示: 此google url将我发送到真实页面: 谷歌使用这种类型的URL来跟踪人们点击的链接。但是,对我来说,我需要真正的url,那么有没有办法获得真正的url呢(http://www.test.com)从谷歌重定向url(http://www.google.ca/url?sa=t&source=web&cd=1&ved=0CDUQFjAA&url=http

我正在android环境下开发一个web浏览器,当我在google中执行搜索时,我会得到google搜索结果列表。这些结果的url如下所示:

此google url将我发送到真实页面:

谷歌使用这种类型的URL来跟踪人们点击的链接。但是,对我来说,我需要真正的url,那么有没有办法获得真正的url呢(http://www.test.com)从谷歌重定向url(http://www.google.ca/url?sa=t&source=web&cd=1&ved=0CDUQFjAA&url=http%3A%2F%2Fww …)

我不想从长字符串中提取url的子字符串,并进行一些替换以获得真实的页面url,因为这不是一种可靠的方法,因为我将依赖于google url结构,可能他们将来会更改其参数名称,所以我的方法在这种情况下不起作用

所以,我想知道是否有一种方法可以知道什么url有重定向链接发送给我


提前谢谢。

如果你仔细看,谷歌会返回类似于。。。也就是说,真正的URL位于Google返回的URL的
URL
GET参数中。您所需要做的就是解析google返回的URL——真正的URL将位于响应的
URL
GET参数中。别忘了在上面做
url\u解码


另一种方法是获取google返回的完整URL,并使用HTTP进行访问。您应该会收到301或302重定向。从该响应中,读取
位置
标题的值-这将是您的真实URL。

请记住,谷歌可以更改它提供的链接,只需在搜索结果中使用网站的“真实”URL即可

覆盖可预见未来的稳健方法是:

  • 检查链接的域是否包含google,如果不包含,则可能是“真实”URL
  • 如果域包含google.*,请尝试从get参数获取URL并取消对该值的scape,然后检查它是否为有效URL
  • 如果全部失败,则无论如何调用链接并检查
    位置
    标题

  • 如果你能够在任何东西出现故障时登录,你可以检查出什么地方出了问题以及原因。

    是的,你是对的,但是,正如我在帖子中所说,我不想使用这个解决方案,因为我必须依赖谷歌,我的意思是,如果谷歌决定更改其参数名称:…&url=real\u url&。。。此名称:…&gurl=real\u url&。。。在这种情况下,我的方法不起作用,因为我要做的是从this word“&url”@AlaouiGhita中提取子字符串。这不是一个真正的子字符串提取,但我仍然听到了。然而,你可能真的对此无能为力。如果这是谷歌的回报。。。首先,你是如何向谷歌发送查询的?对于你的问题,我没有向谷歌发送查询,我有一个网络浏览器,我输入我的地址栏google.com,当我进入网站时,我搜索“某物”,我得到谷歌页面结果,当我点击其中一个结果链接时,我进入结果页面,但这个页面的url是最新的“长谷歌url”,这样我的浏览器会显示在地址栏中,但我希望它只显示地址中的真实urlbar@AlaouiGhita我正在用另一个建议更新我的答案。我喜欢这个解决方案。我将探索它