You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

需求:实现提取谷歌搜索跳转URL中原始干净URL的函数

提取谷歌搜索重定向中的原始干净URL函数实现

嘿,这个需求我太熟悉了!谷歌搜索结果里的跳转链接,本质就是把目标原始URL做了URL编码后,塞进了url这个查询参数里。咱们要做的就是把这个参数提取出来,再解码就能得到浏览器最终显示的干净URL了。

核心思路

  • 解析谷歌重定向URL的查询参数部分
  • 找到其中的url参数值(这是经过URL编码的原始地址)
  • 对该值进行URL解码,得到最终的干净URL

Python实现示例

from urllib.parse import urlparse, parse_qs, unquote

def extract_clean_google_url(dirty_url):
    # 解析输入的脏URL结构
    parsed = urlparse(dirty_url)
    # 解析所有查询参数,parse_qs会将参数转为字典(值是列表)
    query_params = parse_qs(parsed.query)
    
    # 取出url参数的第一个值(因为可能存在重复参数,取第一个即可)
    encoded_target = query_params.get('url', [None])[0]
    if not encoded_target:
        raise ValueError("这不是有效的谷歌重定向链接,找不到`url`参数哦")
    
    # URL解码得到原始干净URL
    return unquote(encoded_target)

测试验证

用你给出的示例URL测试一下:

test_url = "https://www.google.co.il/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwiiz-Xp4srYAhXOxqQKHTZeAPQQFggnMAA&url=https%3A%2F%2Fwww.usatoday.com%2F&usg=AOvVaw04_mIwjwWapfFyzAJqqpNW"
print(extract_clean_google_url(test_url))
# 输出结果:https://www.usatoday.com/

JavaScript实现示例

如果是前端场景,也可以用浏览器原生的URL对象来实现:

function extractCleanGoogleUrl(dirtyUrl) {
    const urlObj = new URL(dirtyUrl);
    const encodedTarget = urlObj.searchParams.get('url');
    
    if (!encodedTarget) {
        throw new Error("无效的谷歌重定向链接,未找到`url`参数");
    }
    
    return decodeURIComponent(encodedTarget);
}

注意事项

  • 要处理异常情况:如果输入的URL不是谷歌的重定向链接(没有url参数),要抛出明确的错误提示
  • URL解码要使用对应语言的标准库方法,避免自己手动解码出现编码问题

内容的提问来源于stack exchange,提问作者Nadav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:25:31