스파르타코딩클럽 이벤트 참여

CH_Hwang·2021년 9월 11일
0

스파르타 코딩클럽 이벤트 참여로 평소에 약한 웹 스크래핑에 대해 공부하고자 해당 주제를 선택했다.

셀레니움 모듈을 이용해서 웹페이지를 키고 끌 수 있었고, bs4 모듈을 이용하여 해당 웹페이지에서 어떤 부분을 가져올 지 태그를 이용하여 정할 수 있었다.
그리고 dload 모듈을 이용하여 가져온 이미지를 폴더를 지정하고 그 폴더에 저장할 수 있었다.

import dload
from bs4 import BeautifulSoup
from selenium import webdriver
import time

driver = webdriver.Chrome('chromedriver') 
driver.get("https://search.daum.net/search?nil_suggest=btn&w=img&DA=SBC&q=%EC%9D%B4%EC%A3%BC%EB%B9%88")
time.sleep(3) 

req = driver.page_source
soup = BeautifulSoup(req, 'html.parser')

thumbnails = soup.select('#imgList > div > a > img')
i = 1
for thumbnail in thumbnails:
    img = thumbnail['src']
    print(img)
    dload.save(img, f'imgHomework/{i}.jpg')
    i += 1;



driver.quit() 

내가 짠 코드는 위와 같은데, 보면 selenium 모듈을 이용해서 크롬으로 저런 주소의 사이트를 열고 3초를 기다린다.(이때 쓰인 time 모듈은 파이썬에 기본으로 내장되어 있는 시간 관련 모듈이다. 3초간 기다리는 명령어를 사용해서 페이지 로딩시간을 기다린 후 크롤링을 시작하게 된다. 빠른 컴퓨터라면 time.sleep을 할 필요가 없을지 모르지만 혹시 모를 사태를 대비해서 3초정도 여유시간을 주었다.

그 후 bs4를 이용해서 이미지에 해당되는 태그를 카피한 다음 모두 끌고와서 for문으로 하나씩 돌렸다. 이때 dload 모듈을 사용하여 imgHomework라는 폴더에 이름은 숫자로 저장하게 하였다.

그 후 다 돌아갔으면 driver.quit으로 해당 웹페이지를 닫아주는 것으로 마무리했다.

0개의 댓글