일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 범물동
- 파이썬
- 지산동카페
- 의무경찰
- 대구인스타핫플
- 안드로이드개발
- 대구맛집
- Android
- 동성로맛집
- androidstudio
- 안드로이드스튜디오
- 감성카페
- 동성로핫플
- 애드몹
- 수성구맛집
- 인스타핫플
- 코딩공부
- 수성구카페
- 대구핫플
- 코딩
- 범물동카페
- 안드로이드
- 애드센스
- 안드로이드앱개발
- 대구카페
- 어플개발
- 앱개발
- 안드로이드앱
- 개발자
- 동성로카페
- Today
- Total
Glacier's Daily Log
Python) 파이썬을 이용한 이미지 크롤링 프로그램 만들기 본문
어쩌다보니 티스토리 블로그를 이용한 첫 번째 포스팅이 파이썬 코딩 관련 글이다.
티스토리 블로그를 시작하게 된 이유는 따로 다른 포스팅으로 다루어 볼 것이다.
우연히 파이썬의 매력에 빠져서, 파이썬으로 많은 실용적인 프로그램들을 만들어 보고 있다.
자바로 프로그램을 짤때도 재미는 있고 실용적이였지만, 파이썬을 써보니 너무도 간결한 문법과 간단한 로직을 가지고 있어서, 내가 원하는것을 더 직관적으로 쉽게 만들 수 있다는 장점이 뚜렷했다.
자바만 알때는 몰랐고, 왜 굳이 파이썬을 쓰는지 몰라서 시작하지 않았던 나를 자책하게 되었다.
코딩보다는 아이디어, 알고리즘 짜는데 더 집중할 수 있게 되니 만들고 싶은것은 물론, 시야도 넓어지게 되었다.
인공지능, 머신러닝에 관심을 가지게 되어서, 텐서플로우 (Tensorflow)를 통해 머신러닝을 배워보려고 했다.
하지만 내가 직접 머신러닝을 하는데는 너무 초보였고, 또 때마침 구글(갓구글)에서 일반인들도 쉽게 머신러닝을 체험해보고 마음대로 사용할 수 있도록 오픈소스로 만들어 놓은 "Teachable Machine" 라는 것을 알게 되었다.
그래서 이 머신러닝에 이용할 이미지들을 모아야 하는데, 하나하나씩 다운받고 하기 너무 귀찮은 것이다.
사람은 진화하는 동물이랬듯이, 이것도 내가 파이썬을 하기 때문에 더 쉽게 해보려고 했다.
결과적으로는 저번에 만들었던 웹크롤링 프로젝트를 활용해서 이미지 크롤링 프로그램을 만들어 보았다.
# 이미지 크롤링 프로그램
# Started on 2020-05-07
# Coded by Glacier Han
# h-glacier.tistory.com
from bs4 import BeautifulSoup as bs
from urllib.request import urlopen
from urllib.parse import quote_plus
import datetime
# 프로그램 시작, 인트로 기능
print('\n >>> 이미지 파일 크롤링 프로그램입니다. 환영합니다! <<<\n')
now = datetime.datetime.now()
nowDate = now.strftime(' 현재 시간 %Y년 %m월 %d일 %H시 %M분 입니다.\n\n')
print(nowDate)
# 메인 기능
while True:
Main_Url = 'https://search.naver.com/search.naver?where=image&sm=tab_jum&query='
Search_Url = input(' >> 검색어를 입력해 주세요 : ')
crawl_num = int(input(' >> 크롤링할 이미지 갯수를 입력해 주세요 : '))
url = Main_Url + quote_plus(Search_Url)
html = urlopen(url)
soup = bs(html, "html.parser")
img = soup.find_all(class_='_img')
num = 1
for i in img:
print(' ※ ',num, '번째 파일 다운로드가 완료되었습니다!')
img_Url = i['data-source']
with urlopen(img_Url) as f:
# 이미지 저장위치 + 파일이름 지정
with open('./web1/img' + Search_Url + str(num)+'.jpg','wb') as h:
img = f.read()
h.write(img)
num += 1
if num > crawl_num:
break
print('\n 모든 크롤링이 완료되었습니다! \n ')
# 종료 확인
requ = int(input('>>> 프로그램을 종료하려면 1을, 계속 크롤링 하시려면 2를 입력해 주세요 : '))
print('\n')
if requ == 2 :
continue
else :
break
전체 코드를 첨부한다.
간단한 설명은 주석으로 달아놓았다.
분석해보자면, 우선 Beautiful Soup 4 라이브러리를 기반으로 사용한다.
웹크롤링의 기초적인 라이브러리이기 때문에 이 글을 보는 사람들은 다 알거라고 믿는다.
다음 포스팅에서 한번 따로 다뤄보겠다.
아무튼 이 bs4를 사용한다.
Main_Url에 네이버 검색 기본 url을 넣고
Search_Url에 검색 키워드가 들어가는 형식이다.
그래서 추출한 값중 이미지에 붙어있는 클래스인 "_img"을
for문을 이용해서 모두 끌어오는 무식한 로직을 가지고 있다.
생각보다 정말 유용하게 쓰고 있다.
10개의 사진을 우클릭 해서 다운받는것 보다
30배 이상의 효율성을 가진 것 같다.
다음 포스팅에는 내가 만들어본
아침을 반겨주는 프로그램을 포스팅해보겠다.
'Coding > Python' 카테고리의 다른 글
Python) 파이썬 웹크롤링 예제 오류 수정본 - AttributeError: 'NoneType' object has no attribute (2) | 2020.07.05 |
---|---|
Python) 파이썬 BeautifulSoup4를 이용해 웹 크롤링 예제 만들어 보기 (10) | 2020.05.13 |
Python) 파이썬 datetime 모듈을 이용해 오늘 날짜 나타내기 (0) | 2020.05.12 |
Python) 파이썬으로 로또 1등번호 추첨기 만들기 (0) | 2020.05.09 |
Python) 갑자기 내가 파이썬을 하게 된 이유 (0) | 2020.05.08 |