반응형
urllib2.HTTPError 또는 urllib.error.HTTPError 재정의하고 어쨌든 응답 HTML 읽기
'HTTP 오류 500 : 내부 서버 오류'응답을 받았지만 여전히 오류 HTML 내부의 데이터를 읽고 싶습니다.
Python 2.6에서는 일반적으로 다음을 사용하여 페이지를 가져옵니다.
import urllib2
url = "http://google.com"
data = urllib2.urlopen(url)
data = data.read()
실패한 URL에서 이것을 사용하려고 할 때 예외가 발생합니다 urllib2.HTTPError
.
urllib2.HTTPError: HTTP Error 500: Internal Server Error
urllib2
내부 서버 오류를 반환하는 동안 이러한 오류 페이지 (포함 또는 제외 )를 어떻게 가져올 수 있습니까?
Python 3에서 해당하는 예외는 urllib.error.HTTPError
.
는 HTTPError
파일 - 류의 객체이다 . 그것을 잡은 다음 read
그 내용을 잡을 수 있습니다 .
try:
resp = urllib2.urlopen(url)
contents = resp.read()
except urllib2.HTTPError, error:
contents = error.read()
500의 본문을 읽고 싶다면 :
request = urllib2.Request(url, data, headers)
try:
resp = urllib2.urlopen(request)
print resp.read()
except urllib2.HTTPError, error:
print "ERROR: ", error.read()
귀하의 경우에는 요청을 작성할 필요가 없습니다. 그냥 해
try:
resp = urllib2.urlopen(url)
print resp.read()
except urllib2.HTTPError, error:
print "ERROR: ", error.read()
따라서 urllib2.HTTPError를 재정의하지 않고 예외 만 처리합니다.
alist=['http://someurl.com']
def testUrl():
errList=[]
for URL in alist:
try:
urllib2.urlopen(URL)
except urllib2.URLError, err:
(err.reason != 200)
errList.append(URL+" "+str(err.reason))
return URL+" "+str(err.reason)
return "".join(errList)
testUrl()
반응형
'Nice programing' 카테고리의 다른 글
1 시간보다 오래된 -mtime 파일 찾기 (0) | 2020.10.26 |
---|---|
결국 HTML보다 XHTML을 선택하는 이유는 무엇입니까? (0) | 2020.10.26 |
Maven을 사용한 환경 변수 (0) | 2020.10.26 |
Android에서 SVG 아이콘을 사용하는 모범 사례는 무엇입니까? (0) | 2020.10.26 |
가능한 한 include 대신 포워드 선언을 사용해야합니까? (0) | 2020.10.26 |