안녕하세요 코코넛입니다. 이번에는 크롤링 관련 세미나를 진행하면서 정리한 자료를 포스팅하게 되었습니다.
세미나를 진행하면서 사용한 ppt를 포스팅에서 그대로 사용하였습니다.
자 이제 시작합니다!
순서는 간단하게 왜 어떻게 하는지에 대한 이유와 실생활에서 쓰이는 예시,
그리고 전체적인 흐름 및 실행을 다루고 있습니다.
크롤링은 자신의 원하는 정보를 웹페이지에서 가져오는 행위 또는 작업의 의미로 일컬어 집니다.
흔한 예로 구글의 검색엔진에 우리가 검색해서 나오는 정보들도 모두 구글의 봇이 크롤링을 하여서 얻어진
정보입니다.
자사의 제품의 정보를 보통은 오픈 마켓에 제공을 하지만 그 외 제품의 정보를 크롤링하여 가져오기도 합니다.
참고로 크롤링한 정보를 상업적으로 사용하려면 정보를 제공하는 측의 허가를 먼저 얻어야 합니다.
API를 통해 얻어오지 못하는 정보도 크롤링으로 얻어올 수 있지요~
크롤링 도구가 있어야 크롤링을 할 수 있겠죠~!
먼저 크롤링할 웹페이지에 접속, 정보선택 후 정보를 가져옵니다. 그 후에 필요한 정보를 파싱하여 사용 혹은 저장!
여기서는 실행할 예시에 셀레늄을 사용하고 있습니다.
가져올 정보의 인덱스를 책갈피에 빗대어 설명을 하였습니다.
실행할 예시입니다.
용어 정리!
실행에 사용한 예제 코드도 첨부하였습니다.
#-*- coding: utf-8 -*- from selenium import webdriver from bs4 import BeautifulSoup as bs import time search_keyword = "초코파이" # 크롤링 도구 driver = webdriver.Chrome('/Users/yutaewoong/Downloads/chromedriver') driver.implicitly_wait(3) time.sleep(5) # 오픈마켓 접속 driver.get('http://www.auction.co.kr/') time.sleep(5) # 상품 검색 driver.find_element_by_xpath("//*[@class='search_input_keyword']").send_keys(search_keyword) time.sleep(3) driver.find_element_by_xpath("//*[@class='search_btn_ok']").click() time.sleep(5) # 상품리스트 가져오기 html = driver.page_source soup = bs(html, 'html.parser') itemlist = soup.findAll("div", {"class": "section--itemcard"}) time.sleep(10) # 가져온 상품리스트에서 필요한 상품명, 가격, 상품링크를 출력!! for item in itemlist: title = item.find("span", {"class": "text--title"}).text price = item.find("strong", {"class": "text--price_seller"}).text link = item.find("span", {"class": "text--itemcard_title ellipsis"}).a['href'] print("상품명 : " + title) print("가격 : " + price + "원") print("상품 링크 : " + link) print("------------------------") time.sleep(10) driver.close()
여기까지 간단히 소개를 마치겠습니다.
여러분께 도움이 되기를 바라겠습니다~~