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

ljk5130님의 프로필 이미지
ljk5130

작성한 질문수

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

BeautifulSoup 사용법 및 간단 웹 파싱 실습(2) - 네이버, 인프런

숙제관련질문입니다

작성

·

219

0

UnicodeEncodeError: 'ascii' codec can't encode characters in position 26-27: ordinal not in range(128)

이런 오류가 떠서 보니 위에도 비슷한 질문이 있던데

확인해보니 '평점순 강좌' 중 '모의해킹 업무의 이해'에서 부터 막힙니다

이것저것 알아보다보니 다른건 다 jpg파일로 src가 되어있었는데

해당 부분만 gif파일로 되어있던데 혹시 연관이 있는건가요?

답변 2

0

저도 동일한 에러가 발생해서 분석을 해보니 img src 링크 내용을 보면 한글로 파일명이 되어 있으면 인코딩 에러가 발생하는 것을 확인했습니다.

저같은 경우

fileName =os.path.dirname(src)  + "/" + rep.quote_plus(os.path.basename(src))

원래 scr 풀네임을 경로와 파일로 나눈 다음 한글로 되어 있는 파일만 인코딩처리하여

다시 합친다음 req.urlretrieve(fileName, fullFileName) 로 날리니깐.. 이미지와 택스트 파일 모두 잘 생성을 합니다. 

한글을 사랑하지만.. 인코딩 처리가 참으로 귀찮기는 하네요.. ㅎㅎ

0

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

안녕하세요. ljk5130 님

좋은 질문 감사드립니다.

결론부터 말씀드리면 우선 숙제를 제외한 예제를 잘 따라하셨으면 해당 과제는 패스하셔도 됩니다.

특정 이미지 중에 우리는 JPG 또는 PNG를 다운받기로 되어 있는데 gif 확장자를 가진 파일이 섞여 있을 경우

나오는 현상입니다.

만약 해결을 원하시면

  1. 다운받을 파일명을 미리 가져오셔서 확장자를 체크

  2. IF 문 으로 분기를 처리하셔서 GIF 인 경우에는 파일명.gif 로 저장

    -> 아닌 경우 PNG, JPG 확장자로 각각 처리해주시면 됩니다.

해당 과제는 사이트에 따라 이미지 파일이 뒤섞여 있는 경우 작동하지 않을 수가 있으니 우선은 넘어가시고

섹션 5~6으로 빨리 진행하시는게 더 좋을 것 같습니다.

열심히 해주셔서 감사합니다.

ljk5130님의 프로필 이미지
ljk5130

작성한 질문수

질문하기