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

Python如何从LinkedIn个人主页URL中准确提取ID?

原代码出错原因

Python的str.lstrip()方法的参数是字符集合,而非完整匹配的前缀字符串。只要目标字符串开头的字符落在你传入的"https://www.linkedin.com/in/"的字符范围内,就会被无差别删掉,比如ID如果以h、t、p、s、w、l、i、n等字符开头,都会被误删,这就是你遇到结果缺字符甚至为空的核心原因。

更准确的替代实现方案

下面给出三种不同场景的实现,都不需要依赖第三方库:

  • 方案1:使用标准库urllib.parse解析(兼容性最优)
    可以兼容http/https前缀、不同地区子域名(如cn.linkedin.com)、URL带查询参数等各种情况,是最稳妥的方案:

    from urllib.parse import urlparse
    
    def extract_linkedin_id(link: str) -> str:
        parsed_url = urlparse(link)
        # 拆分路径,过滤空串
        path_segments = [seg for seg in parsed_url.path.split('/') if seg]
        # 匹配/in/后的第一段路径即为ID
        if len(path_segments) >= 2 and path_segments[0] == 'in':
            return path_segments[1]
        return ""
    
  • 方案2:字符串分割(适合已知URL格式完全符合要求的场景)
    逻辑简单执行快,只要URL里存在/in/段就能正确提取:

    def extract_linkedin_id(link: str) -> str:
        if '/in/' not in link:
            return ""
        # 取/in/之后的部分,再去掉末尾的/和后续参数
        after_in_part = link.split('/in/', 1)[1]
        return after_in_part.split('/')[0].split('?')[0].split('#')[0]
    
  • 方案3:正则匹配(适合需要严格格式校验的场景)
    可以直接过滤掉不符合格式的错误URL,匹配精度高:

    import re
    
    LINKEDIN_ID_PATTERN = r'linkedin\.com/in/([^/?#]+)'
    def extract_linkedin_id(link: str) -> str:
        match_res = re.search(LINKEDIN_ID_PATTERN, link)
        return match_res.group(1) if match_res else ""
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 16:45:00