인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

파이썬 입문 및 웹 크롤링을 활용한 다양한 자동화 어플리케이션 제작하기

파이썬으로 XML 데이터 다루기

이렇게 코딩했더니

작성

·

303

0

콘솔창에 이렇게 뜨는데  utf-8 이쪽에서 뭔가 에러가난거같은데 어떻게해야하죠?

  • section4-1.py
  • forecast.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import sys
import io
import urllib.request as req
from bs4 import BeautifulSoup
import os.path #os.path 내에는 경로반환, 경로추출 등 파일/디렉토리 경로와 관련된 많은 함수를 제공해준다.
sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding = 'utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding = 'utf-8')
#다운로드 urll
url = "http://www.weather.go.kr/weather/lifenindustry/sevice_rss.jsp"
savename = "c:/section4/forecast.xml"
if not os.path.exists(savename):
req.urlretrieve(url, savename)
#BeautifulSoup 파싱
xml = open(savename, 'r', encoding="utf-8").read()
soup = BeautifulSoup(xml, 'html.parser')
#지역확인
for location in soup.find_all("location"):
loc = location.find("city").string
print(loc)

Python - section4-1.py:26
Traceback (most recent call last):
  File "C:\section4\section4-1.py", line 19, in <module>
    xml = open(savename, 'r', encoding="utf-8").read()
  File "C:\Users\user\anaconda3\envs\section4\lib\codecs.py", line 321, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc0 in position 118: invalid start byte
[Finished in 0.152s]

답변 2

0

파일 읽으실때, 원본파일을 보시고 euc-kr 이면 아래 처럼 인코딩을 수정하시면 됩니다.

xml = open(savename, 'r', encoding='euc-kr').read()

같은 사이트인데, url  주소에 따라서 euc-kr 인곳도 있고, utf-8 인곳도 있습니다.

0

좋은사람님의 프로필 이미지
좋은사람
지식공유자

안녕하세요.

현재 아래 주소가 변경된 것 같은데 확인 한 번 해보겠습니다.

http://www.weather.go.kr/weather/lifenindustry/sevice_rss.jsp

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기