ㅁ 개요
O 프로그램 소개
- 이번 글은 이전글((실습)파이썬 네이버에서 강아지로 검색 후 강아지 이미지를 자동으로 크롤링 하는 프로그램 만들기 - 8.PC에 다운로드한 이미지를 저장하기)에 이은 10번째 글로 파일이름에 특수문자('/', '?' 등)가 포함되면 에러가 발생하므로 이러한 특수문자를 처리하는 방법에 대해 알아보겠습니다.
O 완성된 프로그램 실행 화면
1.이전 기본학습과정의 최종 소스코드에서 다운로드 이미지 수를 늘리면(예 : j=5) 아래와 같이 에러가 발생합니다.
아래 오류코드를 보면 87라인 즉, 이미지를 파일로 저장시 에러가 발생하고 있습니다.
특히, 이미지 이름에 특수 기호(?)가 포함되어 있어 에러가 발생함을 알 수 있습니다.
코드를 수정 후 다시 실행하면 아래와 같이 오류가 수정되고 여러 이미지(예: 5장)가 모두 잘 저장되는 것을 볼 수 있습니다.
아래 특수기호가 포함된 이미지 파일의 경우 특수기호를 삭제한 이름으로 저장된 것을 볼 수 있습니다.
ㅁ 세부 내용
O 완성된 소스
소스 : 9.crawing_naver.py
O 소스 실행
O 주요 내용
아래 소스에 대해 간략히 설명하면 다음과 같습니다.
line 88 : re 정규표현식을 사용하여 특수문자를 예외처리 합니다. re.sub(r'[^\w\s.]', '', filename)의 의미는
re : re모듈을 사용하여
sub(r'[^\w\s.]', '', filename) : filename 문자열에서 숫자와 알파벳(\w), 공백(\s) 그리고 마침표(.)를 제외한(^ : 부정을 의미) 모든 문자를 빈 문자열('')로 대체하라는 의미임
따라서 3번째 이미지 태그의 alt속성에 "강아지출산 어떻게 준비해야 할까?"로 되어 있으나, 특수문자(?)를 제거하여 ' 강아지출산 어떻게 준비해야 할까'으로 이름을 수정하여 에러 발생을 방지하고 있습니다.
ㅁ 정리
O 우리가 배운 내용
- 오늘 우리가 배운 내용 중 가장 중요한 부분을 꼽으라면 아래와 같습니다.
filename 문자열에서 숫자와 알파벳(\w), 공백(\s) 그리고 마침표(.)를 제외한(^ : 부정을 의미) 모든 문자를 빈 문자열('')로 대체하라는 의미
-다음 시간에는 가져온 이미지 중에서 base64 인코딩된 이미지를 예외처리하는 방법에 대해 설명합니다.
오늘은 여기까지이며, 댓글과 하트는 제가 이글을 지속할 수 있게 해주는 힘이 됩니다.
감사합니다.