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

如何提取URL路径参数并在Python POST请求中使用

实现方法

直接使用Python自带的标准库urllib.parse做URL解析即可,不需要手写复杂正则,适配性更强,不会因为URL格式细微调整导致提取失败。

修改逻辑

  • 导入URL解析依赖(Python内置,无需额外安装第三方包)
  • 解析用户传入的访问URL,拆分路径段,提取最后一段内容并统一转为大写,匹配BOM接口要求的四字码大写格式
  • 将提取到的机场码替换myobj字典中硬编码的YSSY值

修改后完整代码

import requests
import re
from urllib.parse import urlparse

# BOM接口请求地址
bom_api_url = 'http://www.bom.gov.au/aviation/php/process.php'
headers = {'User-Agent': 'Chrome/102.0.0.0'}

# 替换为实际用户访问的URL,下方为示例地址
user_visit_url = 'https://example.com/taf/ymml'
# 解析URL结构
parsed_url = urlparse(user_visit_url)
# 拆分路径,过滤空的路径段
path_segments = [seg for seg in parsed_url.path.split('/') if seg]
# 取路径最后一段作为机场码,统一转大写
airport_code = path_segments[-1].upper()

myobj = {'keyword': airport_code, 'type': 'search', 'page': 'TAF'}

x = requests.post(bom_api_url, data = myobj, headers=headers)

content = x.text

stripped = re.sub('<[^<]+?>', ' ', content)
split_string = stripped.split("METAR", 1)
substring = split_string[0]

print(substring)

补充说明

  • 上述取路径最后一段的写法通用性较强,只要机场码在URL路径的最后一位,不管前面路径层级怎么调整都能正常提取
  • 如果你的URL路径结构固定为/taf/[机场码],也可以直接通过索引取path_segments[1]拿到机场码

效果验证:传入示例地址https://example.com/taf/ymml时,提取到的airport_code值为YMML,完全符合接口传参要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 09:54:29