Python'e, kaip aš galiu naudoti urllib sužinoti, ar yra 404 ar 200 svetainių?

Kaip gauti antraštės kodą per urllib?

94
13 нояб. rinkinys TIMEX lapkričio 13 2009-11-13 03:35 '09 3:35 am 2009-11-13 03:35
@ 4 atsakymai

Getcode () metodas (pridėtas python2.6) grąžina HTTP būsenos kodą, kuris buvo išsiųstas su atsakymu, arba Nėra, jei URL nėra HTTP URL.

 >>> a=urllib.urlopen('http://www.google.com/asdfsf') >>> a.getcode() 404 >>> a=urllib.urlopen('http://www.google.com/') >>> a.getcode() 200 
143
13 нояб. Atsakymą pateikė Nadia Alramli lapkričio 13 d. 2009-11-13 03:45 '09 3:45 val 2009-11-13 03:45

Galite naudoti urllib2 :

 import urllib2 req = urllib2.Request('http://www.python.org/fish.html') try: resp = urllib2.urlopen(req) except urllib2.HTTPError as e: if e.code == 404: # do something... else: # ... except urllib2.URLError as e: # Not an HTTP-specific error (eg connection refused) # ... else: # 200 body = resp.read() 
border=0

Atminkite, kad HTTPError yra HTTPError poklasis, URLError HTTP būsenos kodą.

78
13 нояб. Joe Holloway atsakymas lapkričio 13 d 2009-11-13 03:46 '09 3:46 am 2009-11-13 03:46

3 python:

 import urllib.request, urllib.error url = 'http://www.google.com/asdfsf' try: conn = urllib.request.urlopen(url) except urllib.error.HTTPError as e: # Return code error (eg 404, 501, ...) # ... print('HTTPError: '+e.code) except urllib.error.URLError as e: # Not an HTTP-specific error (eg connection refused) # ... print('URLError: '+e.reason) else: # 200 # ... print('good') 
12
27 апр. atsakymas pateikiamas XavierCLL 27 balandžio. 2016-04-27 20:20 '16 at 20:20 pm 2016-04-27 20:20
 import urllib2 try: fileHandle = urllib2.urlopen('http://www.python.org/fish.html') data = fileHandle.read() fileHandle.close() except urllib2.URLError, e: print 'you got an error with the code', e 
5
08 июля '11 в 22:25 2011-07-08 22:25 atsakymas pateikiamas m. liepos 08 d. 11 val. 22:25 2011-07-08 22:25

Kiti klausimai apie „ žymes arba Ask a Question