Python에서 url을 이용하여 내용을 읽을려고 할 때, 403 Forbidden 에러가 발생을 하였다.
서버에서 사람이 아닌 자동으로 내용을 읽는 '봇(Bot)'같은 것이라 판단하고 차단을 하는 것 같다.
File "C:\Python27\lib\urllib2.py", line 127, in urlopen return _opener.open(url, data, timeout) File "C:\Python27\lib\urllib2.py", line 410, in open response = meth(req, response) File "C:\Python27\lib\urllib2.py", line 523, in http_response 'http', request, response, code, msg, hdrs) File "C:\Python27\lib\urllib2.py", line 448, in error return self._call_chain(*args) File "C:\Python27\lib\urllib2.py", line 382, in _call_chain result = func(*args) File "C:\Python27\lib\urllib2.py", line 531, in http_error_default raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) urllib2.HTTPError: HTTP Error 403: Forbidden |
최초의 코드
response = urllib2.urlopen(url) return response.read() |
수정된 코드
hdr = {'User-Agent': 'Mozilla/5.0', 'referer' : 'http://m.naver.com'} req = urllib2.Request(url, headers=hdr) try: page = urllib2.urlopen(req) except urllib2.HTTPError, e: print e.fp.read() return page.read() |
urllib2.urlopen()을 사용 할 때 위에 코드처럼 헤더를 추가해 주니까 정상적으로 페이지를 읽을 수 있다.
'SW개발' 카테고리의 다른 글
JSON결과 정렬해서 보기 (4) | 2016.11.03 |
---|---|
리눅스에 apt-get으로 패키지 설치 및 확인 (0) | 2016.08.26 |
오픈소스 자동화 툴 Sikulix (1) | 2016.08.09 |
이클립스에서 자바 인자 쉽게 입력받기 (0) | 2016.07.01 |
[파이썬]이클립스에서 Python 환경 구성 (0) | 2016.02.17 |
정규식(Regular Expression) 활용 하기 (0) | 2016.02.05 |
[Android M Preview]퍼미션(Permission) 변화 (0) | 2015.08.03 |
[안드로이드]Activity화면 진입했을 때 키보드 안나오게 하기 (1) | 2015.05.22 |
[안드로이드 Native Heap memory 확인] (0) | 2015.01.09 |
[안드로이드]JNI빌드 및 로그 추가 (0) | 2014.12.16 |