티스토리 뷰
위키 크롤링을 하던 중
를 만났다.
BeautifulSoup으로 image클래스의 a태그를 찾고 src를 find해서
urlllib.request.urlretrieve로 이미지를 다운받는 코드였다.
하지만 이미지가 페이지 내에 아예 존재하지 않을 경우 위와 같은 오류가 생겼는데 예외처리를 위해 다음과 같은 형식의 코드를 넣었다.
try:
이미지 = 숲.find('a', class_='image)
except AttributeError as e:
print(e)
else:
이미지2 = 이미지.find('img')['src']
urllib.request.urlretrieve("https:"+이미지2, 타이틀)
하지만 계속해서 어트리뷰트에러가 생겼다.
왜인고 하니
try 구문에서 숲.find를 이미지 변수에 할당할 시 해당 태그가 없어도 nonetype이 담긴다.
따라서 여기서는 어떠한 오류도 생기지 않는다.
문제가 되는 부분은 else 구문에서 이미지.find를 할 시 nonetype object은 find 속성이 없다는 attribute error가 생긴다.
따라서 다음과 같이 코드를 고쳤다
html = urllib.request.urlopen("https://es.wikipedia.org/wiki/Calle_del_Conde")
soup = BeautifulSoup(html, 'lxml')
try:
img_url1 = soup.find('a', class_ = 'image')
img_url2 = img_url1.find('img')['src']
except AttributeError as err:
print("이미지없음")
img.append("이미지없음")
print(err)
else:
title_img = "4_{0}_{1}.jpg".format(num, title1)
urllib.request.urlretrieve("https:"+img_url2, title_img)
img.append(img_url2)
(인덴트는 귀찮아서 안맞췄습니당)
문제가 되던 이미지2.find 코드를 try구문에 옮겼더니 정상적으로 "이미지 없음"이 출력된다.
/
예외처리를 위해 구글링 하던 중 https://python.bakyeono.net/chapter-9-2.html 버그와 디버그 테스트 주도 개발 등을 예시와 함께 잘 정리해준 글을 발견했다. 차분히 읽어보고 나도 오류 처리 하는 프로세스를 적립해야한다.
/
*생활코딩의 자바야학을 신청하여 오늘부터 공부하고 있다. 가벼운 마음으로 산책하듯이 즐기려한다.
** 문과생 비전공자인 내가 프로그래밍을 공부하여 취직을 할 수 있을지, 대학원을 가야할지, 국비교육을 받아야할지 등등 머리속이 너무 어지럽다. 신경쓸게 너무 많다고 생각되는 지금, 한 가지에 집중할 필요가 있다. 어지러운 것들을 어지러운 채로 내버려둔 채로 내가 가장 흥미를 느끼는 것들에 집중하여 그것으로 뚫고나갈 힘을 얻어야 한다. 그래야만 모든 것이 무너지는 상황이 와도 버텨낼 수 있다. 적어도 한가지는 바로 세워야한다. 힘내자.
'코드' 카테고리의 다른 글
[python, MySQL] from 파이썬 크롤러 to MySQL via pymysql (0) | 2019.10.17 |
---|---|
[python] gmarket 크롤러 중에 마주친 오류 (0) | 2019.10.16 |
BeautifulSoup 모듈 find와 select의 차이점 - 복잡한 웹을 간단하게 (6) | 2019.10.16 |
어쩌다 경기지역화폐 크롤러 제작에서 마주친 오류 : scrapy 실패기 (0) | 2019.10.10 |
20191006 네이버 영화 댓글 크롤러 제작 수집 오류 (0) | 2019.10.07 |
- Total
- Today
- Yesterday
- DATABASE
- 런업
- 항공
- 스페인
- 일기
- Selenium
- 글쓰기
- nltk
- 파이썬
- 이슈
- 리뷰
- 유튜브
- coding
- 블로그
- 마드리드
- 오류
- scrapy
- NLP
- python
- 저널
- Crawling
- 분석
- 유튜버
- css
- HTML
- 유럽
- flask
- error
- BeautifulSoup
- 코로나
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |