파이썬 강좌(초급)/(실습) 크롤링

(실습)파이썬 네이버에서 강아지로 검색 후 강아지 이미지를 자동으로 크롤링 하는 프로그램 만들기 - 9.파일이름에 특수문자 포함 시 처리하기

파기차차 2024. 3. 3. 13:55
728x90
반응형
SMALL

ㅁ 개요

 

O 프로그램 소개

 

 

 - 이번 글은 이전글((실습)파이썬 네이버에서 강아지로 검색 후 강아지 이미지를 자동으로 크롤링 하는 프로그램 만들기 - 8.PC에 다운로드한 이미지를 저장하기)에 이은 10번째 글로 파일이름에 특수문자('/', '?' 등)가 포함되면 에러가 발생하므로 이러한 특수문자를 처리하는 방법에 대해 알아보겠습니다.

 

 

 

 

O 완성된 프로그램 실행 화면

 

 

 - 최종 완성된 프로그램의 결과화면은 아래와 같습니다.

 

 

1.이전 기본학습과정의 최종 소스코드에서 다운로드 이미지 수를 늘리면(예 : j=5) 아래와 같이 에러가 발생합니다.

아래 오류코드를 보면 87라인 즉, 이미지를 파일로 저장시 에러가 발생하고 있습니다.

특히, 이미지 이름에 특수 기호(?)가 포함되어 있어 에러가 발생함을 알 수 있습니다.

 

 

코드를 수정 후 다시 실행하면 아래와 같이 오류가 수정되고 여러 이미지(예: 5장)가 모두 잘 저장되는 것을 볼 수 있습니다.

 

 

아래 특수기호가 포함된 이미지 파일의 경우 특수기호를 삭제한 이름으로 저장된 것을 볼 수 있습니다.


 

ㅁ 세부 내용

 

O 완성된 소스

 

 

소스 : 9.crawing_naver.py

 

 

O 소스 실행

 
 - 소스파일 다운로드 후 cmd, 파워쉘 또는 vscode 등에서 아래와 같이 실행하시기 바랍니다.
 
 > python 9.crawing_naver .py

 

 


 

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) 그리고 마침표(.)를 제외한(^ : 부정을 의미) 모든 문자를 빈 문자열('')로 대체하라는 의미

filename = re.sub(r'[^\w\s.]', '', filename)

 

 

-다음 시간에는 가져온 이미지 중에서 base64 인코딩된 이미지를 예외처리하는 방법에 대해 설명합니다.

 
 
 
 

 

오늘은 여기까지이며, 댓글하트는 제가 이글을 지속할 수 있게 해주는 힘이 됩니다.

 

 

감사합니다.

728x90
반응형
LIST