1

주제: [ Python ] 한글 URL 열기 문제 해결

source : https://kgu0724.tistory.com/119

Python 에서 urllib.request라이브러리에 포함되어 있는 urlopen함수를 사용할시 ascii 영어가 아닌 다른 문자를 포함하게되면 에러가 발생한다.

파이썬이 아닌 java를 포함 다른언어에서는 보동 urlencode 함수를 활용하면 간단히 해결된다.

하지만 Python에서는 urlencode를 써도 해결이 되지 않을 수 있다.

이 문제를 해결하기 위해, 반나절을 다양한 시도를 해보았지만 아무런 진전이 없었다.

아~ 그냥 예전처럼 node 로 서버 구성하고 python을 올릴까도 생각해 보았는데,

막강한 서버가 아닌 파이와 같이 저사양 보드에서 JVM 가상환경을 얹고, 거기에 기계학습을 위해 python을 돌린다는것이 매우 비효율적일것 같다는 생각을 떨쳐버릴수가 없었다.

이번에 어떻게 해서든 이 문제를 해결해야 된다.

대단한 로직이 필요한것도 아니고, 너무나도 당연하고 문제가 될거라고 생각하지도 않았던 "한글" 문제로 이렇게 당황스러워 보기는 2010년 이후 처음인것 같다.

끄때는 php에서 mysql서버에 한글자료를 등록하고 조회할때 euckr에서 utf8 형태로 변환하여 사용하는것을 구현하기 위해 고민을 했었다.

암튼, 이 문제해결에 답을 "병아리 개발자의 이야기" 블로그에서 찾을 수 있었다.

너무나도 고맙게 생각하고 있다.

병아리 개발자 화이팅!

import urllib.request
import urllib.parse

value = 한글

#parse모듈을 사용해 한글("한글")변수를 유니코드로 치환
encode = urllib.parse.quote_plus(value)


#한글을 제외한 주소를 url1에 저장
url = "https://127.0.0.1:8000/search?keyword='+encode+'&limit=50"


#urlopen 모듈로 불러오기
response = urllib.request.urlopen(url)
출처: https://kgu0724.tistory.com/119 [병아리 개발자의 이야기:티스토리]

Share