웹 페이지를 크롤링할 때, 예를 들어, 텍스트를 추출하는데, 특정 부분에 텍스트가 없다면 에러가 날 수 있습니다.
또는 이미지를 크롤링하기 위해 이미지의 url을 크롤링하는데, 만약 url이 없는 이미지라면 에러가 날 수 있습니다.
이러한 경우 모두 try / except 문으로 코드를 작성하면 해결할 수 있는데요,
try 문은 실행 코드를 입력하고 에러가 발생했을 때 멈추지 않고 다른 코드를 수행하도록 할 수 있습니다.
사용방법은 다음과 같습니다.
try :
에러가 날 수 있는 코드
except 에러이름 :
에러 발생 시 명령할 코드
else :
에러가 발생하지 않을 때 실행할 코드
한편, 위 코드에서, 에러 이름을 공백으로 두면, 모든 에러에 대해 처리됩니다.
그렇다면, 코드로 어떻게 작성해야 하는지 알아보도록 하겠습니다.
먼저, 예를 들어, 특정 페이지에서 텍스트를 가져오는 코드가 다음과 같다고 가정해보겠습니다.
title = li.find('div',textcontents)
태그가 'div', 클래스가 'textcontents' 인 요소를 찾는 코드인데요, 만약 해당 태그가 없다면 'AttributeError' 라는 에러가 납니다.
그렇다면, 해당 태그가 없어서 'AttributeError' 에러가 발생했을 때, 빈 텍스트로 저장하고 넘어가는 try 문을 작성해보도록 하겠습니다.
try :
title = li.find('div',textcontents)
except AttributeError :
print(title.replace("\n","")
else :
pass
위 코드를 보면, try 문에 에러가 발생할 수 있을 코드를 입력해주었고,
except 문에는 에러가 발생했을 때의 실행할 코드, else 문에는 에러가 나지 않았을 때의 코드로 pass를 입력해주었습니다.
이렇게 try문의 형식을 잘 기억해두면 크롤링에서 에러에 대비하여 유용하게 사용할 수 있답니다.
'BLOG > 웹크롤링' 카테고리의 다른 글
[웹크롤링] 해당 페이지 캡처(screen shot)하기 - pyautogui (0) | 2021.03.19 |
---|---|
[웹크롤링] 검색창에 입력된 텍스트 지우는 방법 - clear() (0) | 2021.03.19 |
[웹크롤링] 크롤링 데이터 저장 - 중복되지 않는 폴더 생성 방법 (현재 날짜 / 시간 사용) (0) | 2021.03.19 |
[웹크롤링] 텍스트 크롤링 - '\n' 와 같이 불필요한 텍스트 없애기 (0) | 2021.03.19 |
[웹크롤링] 이모티콘, 텍스트나 이미지로 변경해서 크롤링 하는 방법 (0) | 2021.03.19 |