Hodustory/프로그래밍&DB

파이썬(python) try except /오류 발생 넘기기

호두밥 2019. 5. 1. 14:04

안녕하세요!

 

여러 사이트를 스크래핑(크롤링)을 하다 보면... 

가끔 집어넣은 주소에 페이지가 없는 경우가 있죠.

 

무작위로 등장하니;; 프로그램을 돌려놓고 언제 멈출지도 알 수가 없죠;;

이때 오류가 발생하면 그냥 넘어갈 수 있도록 하는 장치가 있습니다.

 

바로 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

 

 

이렇게 되면 스크래핑(크롤링)을 할 때 귀찮음을 많이 덜어낼 수 있겠죠?

 

반응형