如何去除Google重定向?

省流:google在某些UA下,搜索结果会返回含有跟踪参数的google.com开头的重定向链接,楼主想通过一个轻量的单文件JS油猴脚本,修改搜索结果为真实链接

复现步骤:

  1. 修改浏览器UA 为 (safari 版本13 - Mac的UA)
    如果物理机是macOS Sonoma,且使用 最新的safari 版本17.5,无需修改UA(这正是我遇到的情况
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Safari/605.1.15
  1. google搜索任意关键词,如test
    鼠标悬停某项搜索结果,或者右键拷贝链接。会显示google开头的,含有跟踪参数的链接
https://www.google.com/url?esrc=s&q=&rct=j&sa=U&url=https://www.speedtest.net/&ved=2ahUKEwjYy5TC_ZaHAxW5rlYBHYtQAvgQFnoECAkQAg&usg=AOvVaw25DjDp_1IehkIgnfQ-Ok5E
含有跟踪参数的链接 截图

而不是真实的地址

https://www.speedtest.net
  1. 实测其他UA正常,会直接返回真实链接
    如Chrome on windows的默认UA
Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36
不含跟踪参数的链接 截图

自己在macOS 14.5+safari 17.5 会遇到这种问题,但是自己不会写JS脚本,因此向论坛大佬求助

之前在使用github开源的脚本来去除重定向,但是脚本也失效+停止维护,或许可以作为修改的参考

https://github.com/kodango/Remove-Google-Redirection/blob/master/extension/greasemonkey/remove-google-redirection.user.js

希望懂js的大佬帮忙看下,谢谢!

编辑:
最终解决方案:思路为遍历a标签,把data-sb和data-ved 属性删除即可

感谢 @Yater 大佬提供思路 ,感谢GPT4o 编码实现

最终JS脚本如下
// ==UserScript==
// @id             Remove Data Attributes
// @name           Remove Data Attributes
// @namespace      
// @description    Prohibit click-tracking, and prevent url redirection when clicks on the result links in Google search page.
// @version        1.1.0
// @include        http*://www.google.*/
// @include        http*://www.google.*/#hl=*
// @include        http*://www.google.*/search*
// @include        http*://www.google.*/webhp?hl=*
// @include        https://encrypted.google.com/
// @include        https://encrypted.google.com/#hl=*
// @include        https://encrypted.google.com/search*
// @include        https://encrypted.google.com/webhp?hl=*
// @include        http://ipv6.google.com/
// @include        http://ipv6.google.com/search*
// @updateURL      
// @icon           
// @run-at         document-end
// ==/UserScript==

        const aTags = document.querySelectorAll('a');

        // Loop through all <a> tags
        aTags.forEach(a => {
            // Remove data-ved attribute if it exists
            if (a.hasAttribute('data-ved')) {
                a.removeAttribute('data-ved');
            }

            // Remove data-sb attribute if it exists
            if (a.hasAttribute('data-sb')) {
                a.removeAttribute('data-sb');
            }
        });
10 个赞

一直用的这个

3 个赞

感谢回复,这个脚本我听说过,测试过,没有效果
:cry:

3 个赞


adblock plus这个能行吗

4 个赞

感谢回复
我一直用ubo,刚才下载试用了adblock plus,并且保持勾选了这三个,还是不行

2 个赞

JS, #油猴脚本添加Google, #跟踪, #重定向移除

// ==UserScript==
// @name         Google Search Redirect
// @version      0.0.1
// @description  Google Search Redirect~
// @match        https://www.google.com/search*
// @grant        none
// ==/UserScript==

document.addEventListener('mouseover', function(event) {
    const a = event.target.closest('a');
    if(a?.href.startsWith("https://www.google.com/url")) {
        a.href = new URL(a.href).searchParams.get('url');
        console.log(a.href);
    }
})
2 个赞

感谢大佬回复,代码很简洁

经过我的测试

  1. 这段代码在仅仅在这个UA(Safari 版本13)下有用(不论Chrome还是Safari),console会输出鼠标hover的链接
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Safari/605.1.15
  1. 但是在 macOS + Safari v17.5 如下的默认UA ,无效,无论右键拷贝链接还是左键单击,链接还是Google的url。而且console也没有log输出
    macOS+Chrome+模拟下面的UA 的话,页面直接不带跟踪链接。就很奇怪,难道除了UA还有其他手段判断浏览器嘛?
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Safari/605.1.15
3 个赞
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Safari/605.1.15

这个更像是IPAD SAFARI的userAgent,几乎所有移动版本的浏览器,都会使得GOOGLE使用另外一套附带重定向的UI。你换成FF,DEGE,CHROME的移动版本似乎都能得到附带重定向的UI,而且不同的移动浏览器的HTML都不同,太GIA了。

2 个赞

啊?
Google搞得这么复杂啊,可恶!
:exploding_head:

2 个赞

手头没有mac,测不了,模拟UA确实和你说的一样 :hot_face:

2 个赞

还是要谢谢大佬,哈哈,真的搞不懂google怎么分辨出来我的mac+Safari的,垃圾Google

1 个赞

用这个写个重定向就行了

2 个赞

谢谢,这个感觉是很强的工具,我今天研究研究

3 个赞

用 ublock origin 没问题了,如果是 UA 问题,可以装个修改 UA 的软件统一 UA

3 个赞

感谢,但是Safari没有ubo,只能装adguard插件

而且控制变量测试过,不仅仅是UA的原因

macos+Safari默认ua =有重定向
macos+chrome+模拟Safari的默认ua =无重定向
macos+chrome默认ua=无重定向
macOS+Safari+模拟chrome的ua=无重定向

1 个赞

模拟不管,把 Safari UA 改成 chrome 的默认 UA 后,应该都没问题吧。如果有问题就可能是指纹了。

2 个赞

是的,把Safari浏览器改为chrome的ua,没有重定向

但Safari开发工具改ua只能当前页面生效,新开页面就无效了

这种修改能否持久化,而且能否仅限在Google搜索的页面url生效呢?

1 个赞

这个就要找修改UA的插件了,一些 header editor 根据匹配规则修改 UA 就行。

2 个赞

正在研究这个 Header Editor,但是发现好像safari不支持这个插件,对吗?
:cry:

1 个赞