티스토리 뷰
다룰 내용
1. 사진 크롤링을 위한 기본 모듈 및 라이브러리 소개
2. 사이트 접속 및 검색어 입력
3. 원하는 데이터 추출
5. 예외 컨트롤
4. 해당 데이터 저장
오늘 배울 개념
2. try/ except
오늘 크롤링할 사진
STEP 1
크롤링을 위한 모듈과 라이브러리를 불러온다.
import requests
import urllib.request
import urllib.error
from urllib.error import URLError, HTTPError
from bs4 import BeautifulSoup
- request = python에서 HTTP요청을 서버로 보내고(request) 그 대답(respnse)을 객체로 받아올 수 있는 모듈
- BeautifulSoup = HTML문서 또는 XML문서에서 특정 내용을 선택하기 위해 사용하는 python 패키지
- urllib = python에서 웹과 관련된 데이터를 손쉽게 이용할 수 있도록 해주는 '라이브러리'
- urllib.request = url을 통해 여러가지 요청이 가능 (이번에는 다운로드 요청을 할 예정)
- urllib.error = url관련 에러를 다룸
STEP 2
세션을 만든다.
#세션만들기
s=requests.session()
STEP 3
사이트에 접속하여 검색 URL을 복사한다.
그리고 아래와 같이 파이썬에 만들어놓은 세션에서 해당 URL로 서버에 접근을 시도한다.
url = "https://www.google.co.kr/search?q=%EA%B7%80%EC%97%AC%EC%9A%B4%EB%8F%99%EB%AC%BC&tbm=isch&ved=2ahUKEwiUg7fUz-LpAhUEHKYKHZF7BloQ2-cCegQIABAA&oq=%EA%B7%80%EC%97%AC%EC%9A%B4%EB%8F%99%EB%AC%BC&gs_lcp=CgNpbWcQAzICCAAyAggAMgIIADICCAAyAggAMgIIADICCAAyAggAMgIIADICCAA6BAgjECc6BwgjEOoCECdQtgxY9ylghixoBXAAeAKAAaMBiAH3EJIBBDAuMTeYAQCgAQGqAQtnd3Mtd2l6LWltZ7ABCg&sclient=img&ei=pAHWXpShFIS4mAWR95nQBQ&bih=1231&biw=894"
response = session.get(url)
print(response)
#<Response [200]>이 떳다면 성공!!
STEP 4
해당 서버에 성공적으로 접속했다면,
BeautifulSoup객체를 만들어 이미지 파일을 찾는다.
soup = BeautifulSoup(response.text,'html.parser') #soup 객체를 만든다
img = soup.select("img") #만들어진 soup객체에서 img태그인 녀석들을 찾는다
STEP 5
찾아낸 이미지 파일들을 다운로드 한다.
--> 잘 되면 끝
--> 에러가 났다면 STEP 6로!
n=0
for i in img:
src = i['src']
urllib.request.urlretrieve(src, str(n) + '.jpg')
n = n+1
# 잘 되거나 (다운로드는 python파일이 들어있는 폴더에 다운로드 될것이다)
# 에러가 발생할 것이다
STEP 6
에러가 났다면, try / except 구문을 활용하여 예외 상황을 제외하고 파일을 다운로드 한다.
n=0
for i in img:
src = i['src']
try:
urllib.request.urlretrieve(src, str(n) + '.jpg')
except ValueError: #url 형식이 잘못된 경우
print('url양식이 잘못되었습니다.')
except HTTPError: #불량 url이라 접속이 불가능한 경우
print('url주소에 접근 할 수 없습니다')
n = n+1
크게 이렇게 두가지 오류가 발생하기 때문에, 오류를 제외하고 이미지 다운로드가 가능해진다.
결과물
만약, 검색어를python에서 직접 입력하고 싶다면? (업데이트 완료)
728x90
'IT > IT 이것 저것' 카테고리의 다른 글
(python)알고리즘, 자료구조 - 리스트의 2진탐색 (0) | 2020.06.05 |
---|---|
(python)크롤링 - 30초만에 구글 사진 크롤링 하기 + python에서 검색어 입력해서 검색 (0) | 2020.06.02 |
(python) data crawling (데이터 크롤링) - 누구나 30초만에 기사 제목 크롤링하기 (0) | 2020.06.01 |
Java Script기초 - 변수 선언 var /const/ let 차이점 (0) | 2020.05.25 |
컴퓨터는 어떻게 작동할까?(3) - CPU, 메모리, 입력, 출력 (0) | 2020.04.10 |
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 유니티
- IT기초
- 일자별
- 머신러닝
- requests
- PYTHON
- 랜덤맵
- 심리학
- C#
- 파이썬
- Anet
- ET5X
- 주식
- 터틀트레이딩
- 프로그래머스
- 주식투자
- 경영학
- 스타트업
- 사진크롤링
- beautifulsoup
- 비전공자
- Unity
- 가격데이터
- It
- 강화학습
- 마케팅
- 시스템투자
- json
- 알고리즘
- 크롤링
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함