2013-03-06 6 views
48

हो रही है मैं अनुरोध पुस्तकालय का उपयोग कर रहा है और निम्नलिखित कोड के साथ से डेटा इकट्ठा करने के लिए एक वेबसाइट का उपयोग बताने के लिए जब एक अनुचित यूआरएल दर्ज किया जाता है और 404 त्रुटि लौटा दी जाती है। अगर मैं जानबूझकर गलत URL दर्ज जब मैं इस कार्य करें:अनुरोध कैसे यदि आप एक 404

print r 

मैं इस मिल:

<Response [404]> 

संपादित करें:

मुझे पता है कि के लिए परीक्षण करने के लिए कैसे करना चाहते हैं। ऑब्जेक्ट प्रकार अभी भी वही है। जब मैं r.content या r.text करता हूं, तो मुझे बस कस्टम 404 पृष्ठ का HTML मिलता है। r.status_code attribute पर

+0

दस्तावेज़ीकरण को देखें: http://docs.python-requests.org/en/latest/ पहला पृष्ठ r.status_code को देखने के लिए कहता है –

उत्तर

110

देखो:

if r.status_code == 404: 
    # A 404 was issued. 

डेमो:

>>> import requests 
>>> r = requests.get('http://httpbin.org/status/404') 
>>> r.status_code 
404 

आप requests चाहते हैं त्रुटि कोड के लिए एक अपवाद (4xx or 5xx) को बढ़ाने के लिए, फोन r.raise_for_status():

>>> r = requests.get('http://httpbin.org/status/404') 
>>> r.raise_for_status() 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "requests/models.py", line 664, in raise_for_status 
    raise http_error 
requests.exceptions.HTTPError: 404 Client Error: NOT FOUND 
>>> r = requests.get('http://httpbin.org/status/200') 
>>> r.raise_for_status() 
>>> # no exception raised. 

आप एक बूलियन कॉन में प्रतिक्रिया ऑब्जेक्ट का परीक्षण भी कर सकते हैं पाठ; यदि स्थिति कोड एक त्रुटि कोड (4xx or 5xx) नहीं है, यह माना जाता है 'सही':

if r: 
    # successful response 

आप और अधिक स्पष्ट होना चाहते हैं, if r.ok: का उपयोग करें।

संबंधित मुद्दे