안녕하세요, 여러분! 오늘은 Python을 활용해서 당근마켓 상품을 자동으로 검색하고 엑셀에 정리하는 프로그램을 만들어볼 거예요. 😎
"당근마켓에서 원하는 상품이 올라오면 바로 확인하고 싶다!"
"매번 검색하기 귀찮은데, 자동으로 업데이트되면 좋겠다!"
이런 고민을 해결하는 자동 검색 & 엑셀 저장 프로그램을 함께 만들어보겠습니다. 🚀
📌 1. 프로젝트 개요
✅ 사용 기술: Python, Selenium, OpenPyXL
✅ 주요 기능:
- 당근마켓에서 원하는 키워드로 검색
- 검색된 상품 정보를 크롤링
- 엑셀 파일(.xlsx)로 저장
🔧 2. 필요한 라이브러리 설치
우선, 필요한 라이브러리를 설치해야겠죠? 터미널이나 CMD에서 아래 명령어를 실행하세요.
pip install selenium openpyxl pandas
✅ Selenium → 웹 자동화(당근마켓 검색)
✅ OpenPyXL → 엑셀 파일(.xlsx) 생성
✅ Pandas → 데이터 정리
🏗 3. 코드 작성
이제 본격적으로 Python 코드를 작성해봅시다!
3.1. Selenium으로 당근마켓 검색 자동화
먼저, Chrome 브라우저를 자동으로 열어서 당근마켓에서 특정 키워드를 검색하는 코드부터 작성해볼게요.
💡 크롬 드라이버 다운로드:
Chrome WebDriver 다운로드
본인 브라우저 버전에 맞는 드라이버를 다운로드한 후, Python 코드에서 사용할 수 있도록 경로를 지정해 주세요.
🔹 Step 1: Selenium을 이용한 자동 검색
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
# Chrome WebDriver 경로 지정
chrome_driver_path = "chromedriver.exe" # 본인 환경에 맞게 변경하세요
# 크롬 브라우저 실행
driver = webdriver.Chrome(chrome_driver_path)
driver.get("https://www.daangn.com/")
# 검색어 입력
search_box = driver.find_element(By.NAME, "keyword") # 검색창 찾기
search_box.send_keys("아이폰") # 원하는 검색어 입력
search_box.send_keys(Keys.RETURN) # Enter 키 입력
time.sleep(3) # 페이지 로딩 대기
print("✅ 검색 완료!")
✅ 이 코드의 역할
- 크롬 브라우저를 열고 당근마켓 접속
- 검색창에 키워드 입력 후 검색 수행
- 검색 결과 페이지 로딩
3.2. 상품 정보 크롤링
검색 결과에서 상품명, 가격, 위치, 등록 시간 등의 정보를 가져오겠습니다.
🔹 Step 2: 상품 정보 가져오기
from selenium.webdriver.common.by import By
# 검색 결과 크롤링
items = driver.find_elements(By.CLASS_NAME, "cards-wrap")[0].find_elements(By.TAG_NAME, "article")
data_list = []
for item in items:
try:
title = item.find_element(By.CLASS_NAME, "article-title").text # 상품명
price = item.find_element(By.CLASS_NAME, "article-price").text # 가격
location = item.find_element(By.CLASS_NAME, "article-region-name").text # 위치
time_posted = item.find_element(By.CLASS_NAME, "article-time").text # 등록 시간
link = item.find_element(By.TAG_NAME, "a").get_attribute("href") # 상품 링크
data_list.append([title, price, location, time_posted, link])
except:
pass
print(f"✅ 총 {len(data_list)}개의 상품 정보를 가져왔습니다.")
✅ 이 코드의 역할
- 상품 정보를
find_element
를 이용해 가져오기 - 리스트 형태로 정리
3.3. 엑셀 파일로 저장
마지막으로, 가져온 데이터를 엑셀 파일(.xlsx)로 저장하겠습니다.
🔹 Step 3: OpenPyXL로 엑셀 저장
import openpyxl
# 엑셀 파일 생성
wb = openpyxl.Workbook()
ws = wb.active
ws.title = "당근마켓 검색 결과"
# 엑셀 헤더 추가
ws.append(["상품명", "가격", "위치", "등록 시간", "링크"])
# 데이터 추가
for row in data_list:
ws.append(row)
# 엑셀 파일 저장
wb.save("당근마켓_검색결과.xlsx")
print("✅ 엑셀 저장 완료!")
✅ 이 코드의 역할
- OpenPyXL을 사용해 엑셀 파일 생성
- 헤더(제목) 추가
- 가져온 데이터를 한 줄씩 추가
wb.save()
로 파일 저장
🎯 4. 전체 코드
이제 전체 코드를 한 번에 정리해보겠습니다.
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
import openpyxl
# 1️⃣ 크롬 드라이버 실행
chrome_driver_path = "chromedriver.exe"
driver = webdriver.Chrome(chrome_driver_path)
driver.get("https://www.daangn.com/")
# 2️⃣ 검색어 입력 및 실행
search_box = driver.find_element(By.NAME, "keyword")
search_box.send_keys("아이폰")
search_box.send_keys(Keys.RETURN)
time.sleep(3)
# 3️⃣ 검색 결과 크롤링
items = driver.find_elements(By.CLASS_NAME, "cards-wrap")[0].find_elements(By.TAG_NAME, "article")
data_list = []
for item in items:
try:
title = item.find_element(By.CLASS_NAME, "article-title").text
price = item.find_element(By.CLASS_NAME, "article-price").text
location = item.find_element(By.CLASS_NAME, "article-region-name").text
time_posted = item.find_element(By.CLASS_NAME, "article-time").text
link = item.find_element(By.TAG_NAME, "a").get_attribute("href")
data_list.append([title, price, location, time_posted, link])
except:
pass
print(f"✅ 총 {len(data_list)}개의 상품 정보를 가져왔습니다.")
# 4️⃣ 엑셀 저장
wb = openpyxl.Workbook()
ws = wb.active
ws.title = "당근마켓 검색 결과"
ws.append(["상품명", "가격", "위치", "등록 시간", "링크"])
for row in data_list:
ws.append(row)
wb.save("당근마켓_검색결과.xlsx")
print("✅ 엑셀 저장 완료!")
# 5️⃣ 브라우저 종료
driver.quit()
🎉 5. 마무리
이제 실행해보면, 당근마켓에서 자동으로 상품을 검색하고 엑셀 파일에 저장되는 걸 확인할 수 있습니다!
💡 추가 기능 아이디어
- 특정 가격 이하의 상품만 저장
- 새로운 상품이 올라올 때만 업데이트
- 자동 실행 스케줄러 적용
이제 여러분도 직접 실행해보면서 커스터마이징해 보세요! 🚀
궁금한 점이 있으면 댓글 남겨주세요. 😉
그럼 다음 포스팅에서 만나요! 👋
'Python' 카테고리의 다른 글
Python으로 AI 영상 및 음악 생성하기 (0) | 2025.02.12 |
---|---|
SBI증권 API와 Python을 이용한 자동매매툴 구축하기 (2) | 2024.12.27 |
ChatGPT와 WordPress API를 사용하여 자동으로 블로그 글 게시하기 (0) | 2024.09.23 |
파이썬을 사용한 비트코인 자동 주문 시스템 개발 가이드 (0) | 2024.02.15 |
Python을 활용한 주식 자동 주문 시스템 개발 가이드 (0) | 2024.02.14 |
댓글