使用requests库判断URL请求成功时比较结果异常的问题求助
问题修复方案
你错误地将requests.get()返回的Response对象与它的字符串表示<Response [200]>直接比较,两者类型不同,因此返回False。以下是几种正确的解决方式:
方法1:直接判断HTTP状态码(推荐)
通过response.status_code获取整数类型的状态码,直接与200比较:
import requests response = requests.get('https://google.com') if response.status_code == 200: print(True) else: print(False)
方法2:使用便捷属性判断请求是否成功
如果需要判断所有HTTP成功状态(状态码200-399),可以用response.ok属性:
import requests response = requests.get('https://google.com') print(response.ok) # 请求成功返回True,失败返回False
方法3:转为字符串后比较(不推荐)
如果一定要用字符串形式比较,需先将Response对象转为字符串:
import requests response = requests.get('https://google.com') if str(response) == '<Response [200]>': print(True) else: print(False)
这种方式依赖Response对象的字符串输出格式,一旦库更新格式变化就会失效,因此不建议使用。
内容的提问来源于stack exchange,提问作者Bazargan_Dev
相关产品推荐
相关产品推荐

