Python如何提取URL中位置不固定的request_token参数值
解决方案
方案1:使用Python标准库urllib.parse(推荐,容错性最高)
首先提前导入依赖(导入语句仅需执行一次,无需写入提取逻辑的单行代码中):
from urllib.parse import urlparse, parse_qs
提取request_token的单行代码:
request_token = parse_qs(urlparse(driver.current_url).query).get('request_token', [None])[0]
- 完全不受URL参数位置影响,会自动解析所有query参数生成键值对字典,直接取对应值即可
- 若URL中不存在request_token参数,会自动返回None,不会抛出异常
方案2:正则表达式实现(无需导入urllib的场景)
如果不想引入URL解析库,可以用正则单行实现:
import re; request_token = re.search(r'(?<=request_token=)[a-zA-Z0-9]+', driver.current_url).group() if re.search(r'(?<=request_token=)[a-zA-Z0-9]+', driver.current_url) else None
- 通过正则零宽断言匹配
request_token=后的字母数字组合,只要参数名正确就可以正常提取,不受参数排序影响
内容的提问来源于stack exchange,提问作者basudev patro
相关产品推荐
相关产品推荐

