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

爬取谷歌搜索结果时如何去除href链接中google.com/url?q=前缀

谷歌搜索结果跳转前缀去除方案

问题原因

谷歌为了实现点击统计、安全校验等能力,会给搜索结果的原始链接套一层跳转代理,你拿到的href属性里q参数的值才是目标站点的原始链接,后缀的&sa=、&ved=等都是谷歌的跟踪参数。

推荐解决方案(urllib标准库解析,无第三方依赖)

使用Python自带的urllib.parse模块解析url参数,直接提取q参数的取值,不会出现字符串截断错误,兼容性最高。

修改后的代码示例

首先导入依赖:

from urllib.parse import urlparse, parse_qs
from selenium.common import exceptions

修改get_result函数中的链接处理逻辑:

def get_result(item_in):
    try:
        title = item_in.find_element_by_xpath('.//div/div/a/h3/div').text
        print(title)
    except exceptions.NoSuchElementException:
        return
    try:
        link = item_in.find_element_by_xpath('.//div/div/a').get_attribute('href')
        # 新增谷歌跳转链接处理逻辑
        parsed_url = urlparse(link)
        # 判断是否是谷歌跳转链接
        if parsed_url.netloc == 'www.google.com' and parsed_url.path == '/url':
            query_params = parse_qs(parsed_url.query)
            # 提取q参数对应的原始链接
            if 'q' in query_params:
                link = query_params['q'][0]
        print(link)
    except exceptions.NoSuchElementException:
        return
    result = (title, link)
    return result

简易替代方案(字符串切割,适合快速调试)

如果只是临时调试使用,可以直接通过字符串匹配切割处理,不推荐生产环境使用:

if link.startswith("https://www.google.com/url?q="):
    # 先切掉前缀,再按第一个&切割去掉后续谷歌跟踪参数
    link = link[len("https://www.google.com/url?q="):].split("&")[0]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 21:18:03