2012-11-20 4 views
0

저는 Python2.6을 사용 중이며 요청 모듈 및 문자 인코딩에 많은 문제가 있습니다. 간단한 형태로 삶은html 파일을 저장할 때 유니 코드 오류가 발생했습니다.

, 여기 내 코드 (내 문제를 일으키는 실제 사이트 포함) 결과 오류입니다 : DDElectric 모터 부하

import requests 

sites = ['www.ddelectricmotors.com', 'www.stearnswood.com'] 
for domain in site: 
r = requests.get('http://' + domain) 
f = open(domain, 'w') 
f.write(r.text) 
f.close() 

페이지 및 미세 저장하지만 Stearnswood 시도는 다음을 산출 오류 : 나는에로드 해요 때문에

UnicodeEncodeError: 'ascii' codec can't encode character u'\u2019' in position 13186: ordinal not in range(128) 

적으로는, 내가, 그냥 ASCII로 인코딩을 강제로 선호하는 것 아스키을 선호하는 것 같다있는 scikit 배우기. 알 수없는 숯을 제거하는 것만으로도 괜찮을 것입니다.

답변

2

유닉스 파일은 바이트를 포함하고 객체의 text 속성은 codepoint-string 인 것으로 보이므로 Unix에있는 경우 f.write(r.text.encode('UTF-8'))을 사용할 수 있습니다.

더 큰 문제는 보안되지 않은 채널을 통해 얻은 인터넷에서 가져온 초기화되지 않은 데이터를 자동화 된 프로세스의 파일로 작성하는 것입니다. 파일을 사용하는 방법에 매우주의하십시오. 사이트를 신뢰하는 경우 최소한 HTTPS를 사용하십시오.

관련 문제