如何在Python requests请求的URL中正确替换IP地址?
URL中IP变量替换解决方案
问题原因
你当前代码错误原因是将变量名ipaddr直接写在普通字符串内部,Python不会自动解析替换普通字符串中的变量名,实际请求的地址为字面量http://ipaddr:5525/system.cgi,而非携带目标IP的正确地址,因此请求异常无输出。
正确实现方式
- 方法1:f-string拼接(Python 3.6及以上版本推荐,语法简洁可读性高)
import requests from secimc import password ipaddr = '192.168.100.115' # 字符串前加f标识,变量用{}包裹即可自动解析 resp = requests.get(f'http://{ipaddr}:5525/system.cgi') # 打印响应内容验证请求结果 print(resp.text)
- 方法2:str.format() 方法(兼容所有Python3版本)
import requests from secimc import password ipaddr = '192.168.100.115' resp = requests.get('http://{}:5525/system.cgi'.format(ipaddr)) print(resp.text)
- 方法3:字符串直接拼接
import requests from secimc import password ipaddr = '192.168.100.115' resp = requests.get('http://' + ipaddr + ':5525/system.cgi') print(resp.text)
异常排查补充
如果修改后依然无输出,可添加异常捕获逻辑定位问题:
import requests from secimc import password ipaddr = '192.168.100.115' try: # 增加超时设置避免长时间无响应 resp = requests.get(f'http://{ipaddr}:5525/system.cgi', timeout=5) # 检测HTTP请求状态是否正常 resp.raise_for_status() print(resp.text) except Exception as e: print(f"请求失败:{e}")
内容的提问来源于stack exchange,提问作者booblik
相关产品推荐
相关产品推荐

