네이버 이미지 크롤링 | 파이썬 크롤링 예제 네이버 이미지 검색결과 한번에 다운로드 프로그램 10384 투표 이 답변

당신은 주제를 찾고 있습니까 “네이버 이미지 크롤링 – 파이썬 크롤링 예제 네이버 이미지 검색결과 한번에 다운로드 프로그램“? 다음 카테고리의 웹사이트 you.tfvp.org 에서 귀하의 모든 질문에 답변해 드립니다: https://you.tfvp.org/blog/. 바로 아래에서 답을 찾을 수 있습니다. 작성자 프로그래머 김플 스튜디오 이(가) 작성한 기사에는 조회수 14,944회 및 좋아요 326개 개의 좋아요가 있습니다.

네이버 이미지 크롤링 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 파이썬 크롤링 예제 네이버 이미지 검색결과 한번에 다운로드 프로그램 – 네이버 이미지 크롤링 주제에 대한 세부정보를 참조하세요

파이썬 크롤링 예제로 네이버 이미지 검색결과 50장을 한번에 다운로드 받는 프로그램을 만듭니다.
파이썬 라이브러리 BeautifulSoup와 urllib.request의 urlopen을 사용하며 urllib.parse의 quote_plus로 url의 한글을 아스키 코드로 변환하는 방법도 설명합니다.
-파이썬 웹 크롤링 예제-
파이썬 beautifulsoup 크롤링 예제 네이버 블로그 검색결과 크롤러 만들기
https://youtu.be/hKApZHK_fOQ
파이썬 인스타그램 크롤링 이미지 다운로드 beautifulsoup selenium 사용법
https://youtu.be/j_BW5vNrcxA

김플 스튜디오 블로그
https://kimflstudio.tistory.com

네이버 이미지 크롤링 주제에 대한 자세한 내용은 여기를 참조하세요.

[Python] Selenium을 사용한 네이버 이미지 크롤링 – 오늘의 기록

[Python] Selenium을 사용한 네이버 이미지 크롤링. danuri 2021. 9. 8. 00:46. 진행 중인 프로젝트에서 음식 이미지를 사용할 일이 있어서 이미지 크롤링에 대해 찾아 …

+ 더 읽기

Source: gksdudrb922.tistory.com

Date Published: 8/21/2022

View: 1781

Naver 이미지 크롤러 – velog

이미지 크롤러 – Naver. Naver Open API를 이용한 이미지 url 가져오기. 공식적인 방법으로 어플리케이션을 등록을 통해 API를 사용할 수 있다.

+ 여기에 보기

Source: velog.io

Date Published: 6/28/2022

View: 6433

네이버 이미지 웹크롤링 – Growth & Learning

import urllib.request from bs4 import BeautifulSoup from selenium import webdriver from selenium.webdriver.common.keys import Keys import …

+ 여기에 표시

Source: sulung-sulung.tistory.com

Date Published: 7/2/2021

View: 6727

네이버 웹 이미지 크롤링(Crawling)하기. – 남주는 IT블로그

네이버에서 이미지들을 크롤링하여 이미지 파일을 저장하고, zip 파일로 압축하는 과정입니다. 머신러닝을 학습하기 위해서는 상당한 양의 데이터가 …

+ 여기에 자세히 보기

Source: namhandong.tistory.com

Date Published: 2/15/2022

View: 908

파이썬으로 네이버 이미지 크롤링하기 (Image Crawling)

몇가지 라이브러리와 파이썬을 이용하여 크롤링하는 예제를 돌려보겠습니다. 크롤링(Crawling)이란? 웹 상에 존재하는 갖가지 컨텐츠를 수집하는 작업 …

+ 자세한 내용은 여기를 클릭하십시오

Source: ultrakid.tistory.com

Date Published: 4/5/2021

View: 9379

Object Detection을 위한 네이버 이미지 크롤링 구현

Selenium을 이용한 네이버 이미지 크롤링. 네이버에서는 빠른 검색을 위해 한 번에 50장의 사진을 불러오고 스크롤을 다 내리면 다시 50장을 불러오는 …

+ 여기에 보기

Source: candletheif.tistory.com

Date Published: 9/18/2022

View: 1124

주제와 관련된 이미지 네이버 이미지 크롤링

주제와 관련된 더 많은 사진을 참조하십시오 파이썬 크롤링 예제 네이버 이미지 검색결과 한번에 다운로드 프로그램. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

파이썬 크롤링 예제 네이버 이미지 검색결과 한번에 다운로드 프로그램
파이썬 크롤링 예제 네이버 이미지 검색결과 한번에 다운로드 프로그램

주제에 대한 기사 평가 네이버 이미지 크롤링

  • Author: 프로그래머 김플 스튜디오
  • Views: 조회수 14,944회
  • Likes: 좋아요 326개
  • Date Published: 2019. 8. 15.
  • Video Url link: https://www.youtube.com/watch?v=_wRTyQYjHcg

[Python] Selenium을 사용한 네이버 이미지 크롤링

진행 중인 프로젝트에서 음식 이미지를 사용할 일이 있어서 이미지 크롤링에 대해 찾아보기 시작했다.

여러 사이트를 뒤져봤는데, 그 중 네이버 이미지에는 CCL 상업적 이용 가능 옵션이 있어서 보다 안전하게 프로젝트에 사용할 수 있지 않을까 싶어서 네이버에서 크롤링을 하기로 했다.

구글링을 열심히 해서 여러 크롤링 코드들을 참고했지만, 실제로 잘 동작하지 않아서…. 직접 참고한 몇몇 코드를 따와서 재구성해보았다.

일단 beatifulsoup으로 크롤링을 시도했을 때는 특정 태그부터는 parser가 접근을 하지 못해서 (해당 태그에 dataGroupKey 같은 인증 관련된 부분이 있었는데 이 문제인듯 싶다…) selenium을 통해 구현하기로 했다.

selenium 설치

우선 selenium 사용을 위해 터미널에 다음 명령어를 입력해준다.

pip install selenium

chrome driver 설치

다음은 google Chrome Driver를 설치해 주어야 한다.

https://sites.google.com/a/chromium.org/chromedriver/downloads

이 사이트에 들어가서 자신의 chrome과 맞는 버전을 다운받아야 한다.

+) chrome 버전은 chrome 브라우저 오른쪽 끝에 더보기 -> 도움말 -> Chrome 정보를 통해 확인할 수 있다.

설치를 완료했으면 자신의 PATH 디렉토리 하위에 chromedriver을 위치시킨다. 이렇게 하면 이후 다양한 프로젝트에서 드라이버를 호출할 때 유용하기에 권장하는 방법이다.

나의 경우는 python, pip 등의 명령어가 모여있는 /usr/local/bin 디렉토리로 chromedriver를 이동시켰다.

sudo mv {…/chromdriver} /usr/local/bin # 설치한 chromedriver 경로 -> /usr/local/bin

여기까지 진행했으면 기본 세팅은 끝났다.

코드

<전체 코드>

from selenium import webdriver from urllib.parse import quote_plus from urllib.request import urlopen import os def save_images(images, save_path): for index, image in enumerate(images[:10]): # images[:크롤링하고 싶은 사진 개수] src = image.get_attribute(‘src’) t = urlopen(src).read() file = open(os.path.join(save_path, str(index + 1) + “.jpg”), “wb”) file.write(t) print(“img save ” + save_path + str(index + 1) + “.jpg”) def create_folder_if_not_exists(directory): try: if not os.path.exists(directory): os.makedirs(directory) except OSError: print(‘Error: Creating directory. ‘ + directory) def make_url(search_term): # 네이버 이미지 검색 base_url = ‘https://search.naver.com/search.naver?where=image§ion=image&query=’ # CCL 상업적 이용 가능 옵션 end_url = ‘&res_fr=0&res_to=0&sm=tab_opt&color=&ccl=2’ \ ‘&nso=so%3Ar%2Ca%3Aall%2Cp%3Aall&recent=0&datetype=0&startdate=0&enddate=0&gif=0&optStr=&nso_open=1’ return base_url + quote_plus(search_term) + end_url def crawl_images(search_term): # URL 생성 url = make_url(search_term) # chrome 브라우저 열기 browser = webdriver.Chrome(‘chromedriver’) browser.implicitly_wait(3) # 브라우저를 오픈할 때 시간간격을 준다. browser.get(url) # 이미지 긁어오기 images = browser.find_elements_by_class_name(“_image”) # 저장 경로 설정 save_path = “/Users/danuri/Desktop/images/” + search_term + “/” create_folder_if_not_exists(save_path) # 이미지 저장 save_images(images, save_path) # 마무리 print(search_term + ” 저장 성공”) browser.close() if __name__ == ‘__main__’: crawl_images(input(‘원하는 검색어: ‘))

함수로 분리해서 그렇지 복잡한 코드는 아니다. 아래서부터 위로 올라가면서 알아보자.

if __name__ == ‘__main__’: crawl_images(input(‘원하는 검색어: ‘))

프로그램 시작 시 원하는 검색어를 입력해서 이미지 크롤링을 시작한다.

<이미지 크롤링>

def crawl_images(search_term): # URL 생성 url = make_url(search_term) # chrome 브라우저 열기 browser = webdriver.Chrome(‘chromedriver’) browser.implicitly_wait(3) # 브라우저를 오픈할 때 시간간격을 준다. browser.get(url) # 이미지 긁어오기 images = browser.find_elements_by_class_name(“_image”) # 저장 경로 설정 save_path = “/Users/danuri/Desktop/images/” + search_term + “/” create_folder_if_not_exists(save_path) # 이미지 저장 save_images(images, save_path) # 마무리 print(search_term + ” 저장 성공”) browser.close()

이미지를 크롤링하는 중심 함수다. 위에서부터 알아보자.

1. URL 생성

url = make_url(search_term) def make_url(search_term): # 네이버 이미지 검색 base_url = ‘https://search.naver.com/search.naver?where=image§ion=image&query=’ # CCL 상업적 이용 가능 옵션 end_url = ‘&res_fr=0&res_to=0&sm=tab_opt&color=&ccl=2’ \ ‘&nso=so%3Ar%2Ca%3Aall%2Cp%3Aall&recent=0&datetype=0&startdate=0&enddate=0&gif=0&optStr=&nso_open=1’ return base_url + quote_plus(search_term) + end_url

네이버 이미지 검색 URL + 검색어(search_term) + CCL 상업적 이용 가능 옵션을 이어서 크롤링하고자 하는 URL로서 사용한다.

2. chrome 브라우저 열기

browser = webdriver.Chrome(‘chromedriver’) browser.implicitly_wait(3) # 브라우저를 오픈할 때 시간간격을 준다. browser.get(url)

– webdriver.Chrome(‘chromedriver’): 아까 설치한 chromedriver를 사용해 크롬 페이지를 연다.

– implicitly_wait(3): 브라우저를 오픈할 때 약간의 시간간격을 줘야 이미지가 크롤링된다. 실제로 해당 부분 코드를 지우면 브라우저가 열리자마자 닫힌다.

– get(url): chrome에서 해당 url로 접속한다.

3. 이미지 긁어오기

images = browser.find_elements_by_class_name(“_image”)

네이버 이미지 검색 페이지 HTML을 분석해보면 각 이미지들이 ‘_image’ 클래스를 갖고 있다. 이를 전부 긁어온다.

4. 저장 경로 설정

save_path = “/Users/danuri/Desktop/images/” + search_term + “/” create_folder_if_not_exists(save_path) def create_folder_if_not_exists(directory): try: if not os.path.exists(directory): os.makedirs(directory) except OSError: print(‘Error: Creating directory. ‘ + directory)

각자 원하는 저장 경로를 설정한다. 나는 ‘바탕화면/images/김치찌개’ 로 검색어마다 ‘images/[검색어]’ 디렉토리에 저장되도록 설정했다.

create_folder_if_not_exists는 해당 저장경로가 존재하지 않으면 생성해주는 함수다.

5. 이미지 저장

save_images(images, save_path) def save_images(images, save_path): for index, image in enumerate(images[:10]): # images[:크롤링하고 싶은 사진 개수] src = image.get_attribute(‘src’) t = urlopen(src).read() file = open(os.path.join(save_path, str(index + 1) + “.jpg”), “wb”) file.write(t) print(“img save ” + save_path + str(index + 1) + “.jpg”)

설정한 저장 경로(save_path)에 긁어온 이미지들(images)을 저장한다.

나는 검색어당 10장이면 충분해서 10장만 저장하도록 했다. (1.jpg ~ 10.jpg)

6. 마무리

print(search_term + ” 저장 성공”) browser.close()

마지막으로 chrome 브라우저를 닫아준다.

<실행 결과>

원하는 검색어: 김치찌개 img save /Users/danuri/Desktop/images/김치찌개/1.jpg img save /Users/danuri/Desktop/images/김치찌개/2.jpg img save /Users/danuri/Desktop/images/김치찌개/3.jpg img save /Users/danuri/Desktop/images/김치찌개/4.jpg img save /Users/danuri/Desktop/images/김치찌개/5.jpg img save /Users/danuri/Desktop/images/김치찌개/6.jpg img save /Users/danuri/Desktop/images/김치찌개/7.jpg img save /Users/danuri/Desktop/images/김치찌개/8.jpg img save /Users/danuri/Desktop/images/김치찌개/9.jpg img save /Users/danuri/Desktop/images/김치찌개/10.jpg 김치찌개 저장 성공

크롤링 성공!

Naver 이미지 크롤러

이미지 크롤러 – Naver

Naver Open API를 이용한 이미지 url 가져오기

공식적인 방법으로 어플리케이션을 등록을 통해 API를 사용할 수 있다.

import urllib.request import json client_id = “XXXXXX” client_secret = “XXXXXX” encText = urllib.parse.quote(“아이유”) url = “https://openapi.naver.com/v1/search/image?query=” + encText + “&sort=sim&display=100” request = urllib.request.Request(url) request.add_header(“X-Naver-Client-Id”, client_id) request.add_header(“X-Naver-Client-Secret”, client_secret) response = urllib.request.urlopen(request) rescode = response.getcode() if (rescode == 200): response_body = response.read() response_json = json.loads(response_body.decode(‘utf-8’)) else: print(“Error Code:” + rescode)

웹드라이버를 이용한 방법에 비해 옛날 이미지가 많이 포함되어 있다.

매우 빠른 검색 속도

하루 25,000 쿼리 제한

쿼리당 최대 1000개의 이미지 획득가능

Selenium을 이용한 웹페이지 파싱

Selenium 은 브라우저의 웹드라이버를 이용하여 웹사이트의 동작을 테스트한다. 따라서 현재 사용중인 브라우저 버전과 호환가능한 웹드라이버를 다운로드 받아야한다. 크롬 브라우저의 웹 드라이버는 link에서 다운로드할 수 있다.

Naver 검색창의 웹페이지 동작을 분석하고 아래의 웹드라이버의 동작을 구현하여 이미지 url을 가져올 수 있다.

1. 키워드 검색 2. 스크롤 3. img 태그에서 src 속성값 획득 4. url 중복 제거

[Naver] 스크롤

네이버 이미지 검색에서 더 이상 스크롤 할수 없는 경우 로딩창의 style 속성에 display가 ‘none’으로 설정된다.

네이버 이미지 웹크롤링

반응형

import urllib.request from bs4 import BeautifulSoup from selenium import webdriver from selenium.webdriver.common.keys import Keys import time binary = ‘chromedriver.exe’ options = webdriver.ChromeOptions() options.add_experimental_option(‘excludeSwitches’, [‘enable-logging’]) browser = webdriver.Chrome(options=options) browser.implicitly_wait(10) browser.get(“https://search.naver.com/search.naver?where=image&sm=stb_nmr&”) elem = browser.find_element_by_id(‘nx_query’) elem.send_keys(“경복궁”) elem.submit() for i in range(1, 5): browser.find_element_by_xpath(“//body”).send_keys(Keys.END) time.sleep(10) time.sleep(10) html = browser.page_source soup = BeautifulSoup(html, “lxml”) def fetch_list_url(): params = [] imgList = soup.find_all(“img”, class_=”_img”) for im in imgList: try : params.append(im[“src”]) except KeyError: params.append(im[“data-src”]) return params def fetch_detail_url(): params = fetch_list_url() for idx,p in enumerate(params,1): urllib.request.urlretrieve(p, “C:/naver/” + str(idx) + “.jpg”) fetch_detail_url() browser.quit()

밑에 저장할 폴더를 설정하고 이미지 크롤링할 검색어를 설정해준다.

크롬드라이버를 설치하고 실행하면 된다.

그럼 폴더에 이렇게 저장된다.

반응형

네이버 웹 이미지 크롤링(Crawling)하기.

반응형

https://github.com/jun7867/Web_Image_Crawling

네이버에서 이미지들을 크롤링하여 이미지 파일을 저장하고, zip 파일로 압축하는 과정입니다.

머신러닝을 학습하기 위해서는 상당한 양의 데이터가 필요합니다. 이때, 이미지를 하나하나 다운받기에는 무리가 있습니다.

따라서, 웹 이미지 크롤링을 사용하여 몇백개의 이미지를 다운받을 겁니다.

먼저 웹 크롤링을 하기 위해서 환경 설정이 필요합니다.

환경 설정 및 실행 순서는 다음과 같습니다.

selenium 설치 chromedriver 설치 및 Path 설정 tqdm 설치 python3 ./naver_crawling.py

*파이썬은 설치 되어있어야 합니다.

먼저 selenium을 설치해야 합니다.

selenium은 웹앱을 테스트하는데 사용되는 프레임 워크입니다.

pip install selenium

pselenium을 설치 하였다면 chromedriver를 설치해야 합니다.

https://sites.google.com/a/chromium.org/chromedriver/downloads

* 이때, 사용하고 있는 chrome과 버전이 일치해야 합니다

PATH설정에서 어려움을 겪을 수도 있습니다.

chromedriver 오류시 아래 블로그를 참고해주세요.

http://kiddwannabe.blog.me/221539689821

Mac에서는 $HOME/bin에 파일을 옮기고 환경설정 하였습니다.

from selenium import webdriver

from selenium import webdriver from selenium.webdriver.common.keys import Keys #import Keys from urllib.request import urlretrieve from tqdm import tqdm import time #import time; enablues you to use .sleep() while crwaling imges import os import zipfile def get_images(keyword): print(“접속중”) driver = webdriver.Chrome(executable_path=’/Users/namjjun/bin/chromedriver’) driver.implicitly_wait(30) url=’https://search.naver.com/search.naver?sm=tab_hty.top&where=image&query={}’.format(keyword) driver.get(url) #페이지 스크롤 다운 body=driver.find_element_by_css_selector(‘body’) for i in range(3): body.send_keys(Keys.PAGE_DOWN) time.sleep(1) #delay 주기 #이미지 링크 수집 imgs= driver.find_elements_by_css_selector(“img._img”) result=[] for img in tqdm(imgs): if ‘http’ in img.get_attribute(‘src’): result.append(img.get_attribute(‘src’)) driver.close() # 크롬창 자동 종료 print(“수집 완료”) #폴더생성 print(“폴더 생성”) #폴더가 없을때만 생성 if not os.path.isdir(‘./{}’.format(keyword)): os.mkdir(‘./{}’.format(keyword)) #다운로드 for index, link in tqdm(enumerate(result)): #tqdm은 작업현황을 알려줌. start=link.rfind(‘.’) #뒤쪽부터 검사 end=link.rfind(‘&’) filetype=link[start:end] # .jpg , .png 같은게 뽑힘 urlretrieve(link,’./{}/{}{}{}’.format(keyword,keyword,index,filetype)) print(‘다운로드 완료’) #압축 – 메일 zip_file=zipfile.ZipFile(‘./{}.zip’.format(keyword),’w’) for image in os.listdir(‘./{}’.format(keyword)): # Image는 파일명 zip_file.write(‘./{}/{}’.format(keyword,image), compress_type=zipfile.ZIP_DEFLATED) #파일경로/파일명 zip_file.close() print(“압축완료”) if __name__ == ‘__main__’: keyword=input(“수집할 키워드를 입력하세요: “) get_images(keyword)

반응형

브라보 마이라이프 :: 파이썬으로 네이버 이미지 크롤링하기 (Image Crawling)

몇가지 라이브러리와 파이썬을 이용하여 크롤링하는 예제를 돌려보겠습니다.

크롤링(Crawling)이란?

웹 상에 존재하는 갖가지 컨텐츠를 수집하는 작업으로, 다양한 프로그램을 만들 수 있습니다.

예를 들어, 인터넷에 존재하는 이미지 파일을 하나하나 저장하기 번거롭습니다.

크롤링을 이용하면 간단한 코드로 짧은시간에 내가원하는 검색어의 이미지를 가져올 수 있습니다.

저는 딥러닝 학습을 위해 많은 양의 이미지가 필요했었는데 이때 자주 이용한 방법이 바로 크롤링입니다.

이것 말고도, 맛집 블로그 링크들을 한번에 모으던가 원하는 사이트목록을 빠른시간에 가져올 수 있는게 큰 장점입니다.

마스크 착용 유무를 판단하는 학습 데이터가 필요했습니다.

이렇게 실시간으로 사진이 폴더에 저장됩니다.

우선 크롤링에 필요한 import 목록입니다.

from urllib.request import urlopen from bs4 import BeautifulSoup as bs from urllib.parse import quote_plus

urlopen은 파이썬을 설치할 때 기본적으로 설치되는 라이브러리입니다.

혹시모르니 필요한 라이브러리를 pip명령어를 이용하여 cmd창에서 설치해주도록 합시다.

pip install beautifulsoup4 pip install requests

bequtifulsoup 라이브러리는 HTML 및 XML 파일에서 데이터를 가져 오는 Python 라이브러리입니다.

이 라이브러리를 이용하여 조금더 편하게 정보를 가져올 수 있습니다.

우선 네이버 이미지를 긁어모으기 위해서 네이버 url을 들여다보면

요즘 문제가 심각한 코로나에대해 검색해봤습니다. 또 다른 검색어로 검색해보겠습니다.

치킨이 먹고싶네요. 아무튼 위에 두 검색한 url을 들여다보면

https://search.naver.com/search.naver?where=image&sm=tab_jum&query= 라는 주소에

치킨, 코로나 만 바뀐것을 알 수 있습니다.

baseurl 을 위의 주소로 두고, 우리가 원하는 검색어의 이미지를 크롤링하기 위하여 뒤에 검색어는

파이썬 실행시에 입력하도록 plusurl이라는 변수로 생성해줍니다.

baseUrl = ‘https://search.naver.com/search.naver?where=image&sm=tab_jum&query=’ plusUrl = input(‘검색어를 입력하세요 : ‘) # url = baseurl + 검색어 url = baseUrl + quote_plus(plusUrl) html = urlopen(url) soup = bs(html, “html.parser”) img = soup.find_all(class_=’_img’)

baseUrl과 검색어의 변수 plusUrl을 더하여 원하는 검색된 페이지로 접근합니다.

이런식으로 html을 열어서 이미지의 경로를 받아옵니다.

n = 1 for i in img: imgUrl = i[‘data-source’] with urlopen(imgUrl) as f: with open(‘./img/’ + plusUrl + str(n)+’.jpg’,’wb’) as h: # w – write b – binary img = f.read() h.write(img) n += 1 print(‘다운로드 완료’)

네이버 이미지는 한페이지에 50개의 이미지만 생성되므로 보통 이미지가 다운로드되면 50개까지 크롤링이 가능합니다.

아래는 전체 소스 코드입니다.

from urllib.request import urlopen from bs4 import BeautifulSoup as bs from urllib.parse import quote_plus baseUrl = ‘https://search.naver.com/search.naver?where=image&sm=tab_jum&query=’ plusUrl = input(‘검색어를 입력하세요 : ‘) # 한글 검색 자동 변환 url = baseUrl + quote_plus(plusUrl) html = urlopen(url) soup = bs(html, “html.parser”) img = soup.find_all(class_=’_img’) n = 1 for i in img: imgUrl = i[‘data-source’] with urlopen(imgUrl) as f: with open(‘./img/’ + plusUrl + str(n)+’.jpg’,’wb’) as h: # w – write b – binary img = f.read() h.write(img) n += 1 print(‘다운로드 완료’)

간단한 파이썬 코드로 네이버 이미지를 빠른시간에 많이 저장할 수 있습니다.

마지막으로 구현 영상입니다.

youtu.be/yl36J0dXS2w

네이버 이미지 가져오는 방법이었습니다. 감사합니다.

Object Detection을 위한 네이버 이미지 크롤링 구현

이미지 크롤링

이미지 크롤링은 Object Detection을 위한 학습에 필요한 과정입니다.

특정 객체를 학습 시키기 위해선 많은 이미지들이 필요하고 이를 일일이 다운 받기엔 너무 많은 시간이 듭니다.

일일이 다운 받기엔 너무 많은 이미지

이를 자동화하기 위해 파이썬 기반 이미지 크롤링 프로그램을 만들어 보겠습니다.

Selenium을 이용한 네이버 이미지 크롤링

네이버에서는 빠른 검색을 위해 한 번에 50장의 사진을 불러오고 스크롤을 다 내리면 다시 50장을 불러오는 형식을 취하고 있습니다.

이는 이미지 크롤링에 악영향을 끼치고 이를 해결하기 위해 자동으로 스크롤바를 내려주는 기능이 필요합니다.

이 기능을 Selenium을 통해 구현하겠습니다.

제 컴퓨터의 환경은 윈도우7 64bit Jupyter Notbook(파이썬3)입니다.

우선 Anaconda prompt에 다음과 같은 명령어를 입력해줍니다.

pip install selenium

다음은 google Chrome Driver를 설치해주어야 합니다.

https://sites.google.com/a/chromium.org/chromedriver/downloads

이 사이트에 들어가셔서 자기의 chrome과 맞는 버젼을 자기가 알수있는 경로에 다운받아야 합니다.

chrome의 버젼은 시작>제어판>프로그램 및 기능>chrome의 버젼 항목에서 알 수 있습니다.

버젼을 확인 가능하다

알맞는 버젼을 자기가 알 수 있는 경로에 다운받아 줍니다. 저는

‘C:/Users/Administrator/Documents/chromedriver_win32/chromedriver’ 에 다운받아 주었습니다.

여기까지 진행하셨으면 기본 세팅은 끝났습니다.

다음은 코드를 구현하겠습니다.

1. 원하는 검색어로 브라우저 열기

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 from selenium import webdriver import requests as req import time from selenium.webdriver.common.keys import Keys from urllib.request import urlopen import os #찾고자 하는 검색어를 url로 만들어 준다. searchterm = ‘car’ url = “https://search.naver.com/search.naver?where=image§ion=image&query=” + searchterm #chrome 사용 browser = webdriver.Chrome( ‘C:/Users/Administrator/Documents/chromedriver_win32/chromedriver’ ) #오류 방지를 위한 시간 간격 두기 browser.implicitly_wait( 3 ) #해당 검색어로 브라우져를 오픈해준다. browser.get(url) time.sleep( 1 ) # 이미지를 불러오기 위해 가로 = 0, 세로 = 30000 픽셀 스크롤한다. for _ in range ( 10000 ): browser.execute_script( “window.scrollBy(0,30000)” ) Colored by Color Scripter cs

chromedrive를 통해 chrome을 열고 selenium을 통해 자동으로 스크롤을 내려줍니다.

2. 저장 전 사전 설정

1 2 3 4 5 6 7 8 9 count = 0 photo_list = [] #다운 받을 사진의 list 생성 #span태그의 img_border클래스를 가져옴 photo_list = browser.find_elements_by_tag_name( “span.img_border” ) # 소스코드가 있는 경로에 ‘검색어’ 폴더가 없으면 만들어준다.(이미지 저장 폴더를 위해서) if not os.path.exists(searchterm): os.mkdir(searchterm) Colored by Color Scripter cs

네이버의 사진은 span.img_border class에 있습니다. 이를 통해 이미지를 불러오고 사진의 이름을 폴더로 만들어 그 폴더에 사진을 저장 시켜줍니다

3. 이미지 저장

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 for index, img in enumerate(photo_list[ 0 :]): #태그의 리스트를 하나씩 클릭한다. img.click() #확대된 이미지의 정보는 img태그의 _image_source라는 class안에 담겨있다. html_objects = browser.find_element_by_tag_name( ‘img._image_source’ ) current_src = html_objects.get_attribute( ‘src’ ) t = urlopen(current_src).read() if index < 400 : #다운 받을 장 수 정하기 filename = searchterm + str (count) + ".jpg" File = open (os.path.join(searchterm , searchterm + "_" + str (count) + ".jpg" ), "wb" ) File.write(t) count + = 1 print ( "img save" + str (count)) else : print ( "end" ) browser. close () break Colored by Color Scripter cs for문을 돌며 네이버의 사진 block을 하나하나 클릭하고 사용자가 지정한 사진의 갯수만큼 다운을 받습니다. 4. 완성된 코드 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 from selenium import webdriver import requests as req import time from selenium.webdriver.common.keys import Keys from urllib.request import urlopen import os #찾고자 하는 검색어를 url로 만들어 준다. searchterm = '자동차' #경로 + 검색어 url = "https://search.naver.com/search.naver?where=image§ion=image&query=" + searchterm #브라우저를 크롬으로 만들어주고 인스턴스를 생성해준다. browser = webdriver.Chrome( 'C:/Users/Administrator/Documents/chromedriver_win32/chromedriver' ) #브라우저를 오픈할 때 시간간격을 준다. browser.implicitly_wait( 3 ) #해당 경로로 브라우져를 오픈해준다. browser.get(url) time.sleep( 1 ) for _ in range ( 10000 ): # 가로 = 0, 세로 = 30000 픽셀 스크롤한다. browser.execute_script( "window.scrollBy(0,30000)" ) count = 0 photo_list = [] #span태그의 img_border클래스를 가져옴 photo_list = browser.find_elements_by_tag_name( "span.img_border" ) # 소스코드가 있는 경로에 '검색어' 폴더가 없으면 만들어준다.(이미지 저장 폴더를 위해서) if not os.path.exists(searchterm): os.mkdir(searchterm) for index, img in enumerate(photo_list[ 0 :]): #위의 큰 이미지를 구하기 위해 위의 태그의 리스트를 하나씩 클릭한다. img.click() #확대된 이미지의 정보는 img태그의 _image_source라는 class안에 담겨있다. html_objects = browser.find_element_by_tag_name( 'img._image_source' ) current_src = html_objects.get_attribute( 'src' ) t = urlopen(current_src).read() if index < 400 : #40 filename = searchterm + str (count) + ".jpg" File = open (os.path.join(searchterm , searchterm + "_" + str (count) + ".jpg" ), "wb" ) File.write(t) count + = 1 #before_src = current_src 조금 더 고민 #current_src = "" print ( "img save" + str (count)) else : print ( "저장 성공" ) browser. close () break Colored by Color Scripter cs 5. 문제점 이 프로그램은 icrawler나 beautiful soup와는 다르게 사용자가 입력한 숫자만큼의 사진을 모두 다운 받습니다. 하지만 아무리 좋은 검색 엔진이여도 1000장의 사진을 검색하면 그 중 30%정도는 원하는 사진이 아닐 경우가 있습니다. 네이버에서 하는 검색 또한 그러하며 많은 이미지 크롤링을 위해선 다양한 검색 엔진에서 사진을 다운받아야 합니다. 다음엔 구글, bing, Baidu에서 이미지를 다운 받을 수 있는 icrawler에 대해서 포스팅 하겠습니다.

키워드에 대한 정보 네이버 이미지 크롤링

다음은 Bing에서 네이버 이미지 크롤링 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 파이썬 크롤링 예제 네이버 이미지 검색결과 한번에 다운로드 프로그램

  • 파이썬 크롤링
  • 파이썬 크롤링 예제
  • 파이썬 beautifulsoup
  • 파이썬 urllib request
  • 파이썬 자동화
  • 파이썬 스크래핑
  • 파이썬 웹 크롤링
  • 파이썬 웹 스크래핑
  • 파이썬 이미지 다운로드
  • 파이썬 이미지 저장
  • 파이썬
  • python
  • 파이썬 프로그래밍
  • 프로그래밍
  • 파이썬 강의
  • 파이썬 기초
  • 파이썬 강좌
  • 파이썬 예제
  • 파이썬 독학
  • 파이썬 문법
  • 파이썬 튜토리얼
  • 파이썬 공부
  • 파이썬 입문
  • 파이썬 네이버 크롤링
  • beautifulsoup 크롤링
  • beautifulsoup 사용법
  • beautifulsoup href 가져오기
  • beautifulsoup python

파이썬 #크롤링 #예제 #네이버 #이미지 #검색결과 #한번에 #다운로드 #프로그램


YouTube에서 네이버 이미지 크롤링 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 파이썬 크롤링 예제 네이버 이미지 검색결과 한번에 다운로드 프로그램 | 네이버 이미지 크롤링, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

Leave a Comment