안녕하세요!
여러 사이트를 스크래핑(크롤링)을 하다 보면...
가끔 집어넣은 주소에 페이지가 없는 경우가 있죠.
무작위로 등장하니;; 프로그램을 돌려놓고 언제 멈출지도 알 수가 없죠;;
이때 오류가 발생하면 그냥 넘어갈 수 있도록 하는 장치가 있습니다.
바로 try except 구문입니다.
try : 오류가 없는 경우 실행
except : 오류인 경우 실행
try에 실행할 구문을 적어넣고
except에 실패할 때 실행할 구문을 적어주면
오류가 뜨더라도 except 구문을 실행한 후 다음 루프로 넘어가게 됩니다.
예시를 볼까요?
아래의 예시는 오류가 나지 않을 경우 실행하고,
오류가 날 경우는 화면에 'error'만 출력한 후 넘어가는 코드입니다.
from openpyxl import load_workbook
from openpyxl import Workbook
from bs4 import BeautifulSoup
import csv
import requests
i = 1
while i < 200:
try:
base_url = 'http://hodubab.tistory.com/'+str(i)
con = requests.get(base_url)
soup = BeautifulSoup(con.content, 'lxml')
title=soup.find("h2").get_text()
print(title)
line = []
line = (base_url, title)
f = open('folk_kor.csv','a',-1, "utf-8",newline='')
wr = csv.writer(f)
wr.writerow(line)
f.close()
print('write')
except:
print('error')
i=i+1
이렇게 되면 스크래핑(크롤링)을 할 때 귀찮음을 많이 덜어낼 수 있겠죠?
반응형