Python requests交互式代理配置触发AttributeError问题求解
问题原因
报错由变量类型错误引发:
- 输入
y启用代理时,proxy被赋值为requests要求的字典格式配置,参数类型合法,因此可以正常运行 - 输入
n不启用代理时,proxy没有被重新赋值,始终是input()返回的字符串类型值"n"。requests处理proxies参数时,会对传入值调用.get()方法读取代理规则,字符串不存在该方法,因此抛出AttributeError。
解决方案
requests库原生支持proxies=None的传值方式,传入None时会自动走直连、不使用任何代理。你只需要在不启用代理的分支中,给proxy显式赋值为None即可,修正后的交互代码如下:
if url != "": # 兼容大写输入、输入前后带空格的场景 proxy_choice = input("Wanna set proxies? Y-N: ").strip().lower() if proxy_choice == "y": proxy = {'https': 'https://127.0.0.1:8080'} else: print(" ***Proceeding without proxies***") proxy = None
后续调用requests.get()的原有代码不需要做任何修改,两种选择下传入的proxies=proxy都是合法参数,可正常运行。
内容的提问来源于stack exchange,提问作者SickAndTired
相关产品推荐
相关产品推荐

