Python Selenium如何从访问得到的页面URL中提取指定ID值
从目标URL提取数字ID的实现方法
针对这类固定格式的URL,要提取image-路径段后、下一个斜杠前的连续数字ID,直接在现有Selenium逻辑中添加对应提取代码即可,两种可直接复用的实现方式如下:
方案1:正则匹配(推荐,性能最优)
该方案针对固定URL规则精准匹配,不会误抓URL中其他位置的数字,即使URL带查询参数、锚点也能正常识别,代码如下:
import re # 该段代码放在 driver.get(text) 之后执行 current_page_url = driver.current_url match_result = re.search(r"image-(\d+)/", current_page_url) if match_result: image_id = match_result.group(1) # 此处image_id即为需要的类似610179440的ID值 else: # 可根据业务需求替换为对应的异常处理逻辑 raise Exception("当前页面URL格式不符合预期,无法提取ID")
方案2:URL路径分段解析(无正则依赖,逻辑直观)
如果不想使用正则,可借助Python标准库的URL解析工具拆分路径提取:
from urllib.parse import urlparse # 该段代码放在 driver.get(text) 之后执行 current_page_url = driver.current_url parsed_result = urlparse(current_page_url) image_id = None for path_segment in parsed_result.path.split("/"): if path_segment.startswith("image-"): image_id = path_segment.split("-")[1] break if not image_id: raise Exception("当前页面URL格式不符合预期,无法提取ID")
注意:请务必通过
driver.current_url获取当前页面实际URL再做提取,不要直接使用表单传入的text变量取值——页面访问过程中可能发生重定向,初始传入的URL和最终落地页URL可能存在差异,从driver实例拿到的URL才是准确的。
两种方案的适用场景:
- 正则方案:代码简洁执行快,适合URL规则长期固定、没有频繁调整的业务场景
- 路径分段方案:逻辑透明易修改,适合后续URL路径规则可能调整、需要频繁改动提取逻辑的场景
内容的提问来源于stack exchange,提问作者Blog Khóa Học
相关产品推荐
相关产品推荐

