반응형
농협 농산물 경매가격 파이썬·RPA로 일일 시세 받아보기 자동화
효율적인 농산물 유통 전략을 수립하려면 실시간 도매시장 경매가격을 꾸준히 관찰해야 합니다. 특히 소규모 농가, 온라인 마켓, 급식업체처럼 가격 변동에 민감한 사업자라면 매일 아침 농협 농산물 경매가격 시세를 확인해 재고와 판매 전략을 조정하는 일이 필수적입니다.
본 글에서는 농협 농산물 경매가격 공공 데이터 API, 웹 스크래핑, RPA 세 가지 축을 결합해 ‘사람 손을 거치지 않는 완전 자동화 파이프라인’을 구축하는 방법을 단계별로 안내합니다.
농협 농산물 경매가격 파이썬·RPA로 일일 시세 받아보기 - 자동화가 가져다주는 가치
- 시간 절약: 매일 10분씩 브라우저에서 복붙 작업을 한다면 1년간 60시간이 사라집니다.
- 데이터 정확도 향상: 수기로 옮길 때 발생하는 오타·누락 가능성을 제거합니다.
- 의사 결정 속도: 시세 데이터를 대시보드에 실시간 반영해 즉각적인 가격 조정을 지원합니다.
농협 농산물 경매가격 데이터 소스 파헤치기
공공 데이터 포털 aT OpenAPI
- 한국농수산식품유통공사(aT)는 농산물도매시장 일별 가격 API를 제공합니다.
- HTTP GET 방식, JSON·XML 응답 지원, 하루 10 000콜 무료.
- 주요 파라미터
serviceKey
: 발급받은 인증키cropName
: 농산물 명(예: "대파")marketName
: 시장 코드(예: "가락")searchDate
:YYYYMMDD
형식
농협 공판장 거래시스템(NEWGP)
- https://newgp.nonghyup.com
- 실거래 낙찰 결과를 CSV로 제공하지만 로그인 세션이 필요합니다.
- Selenium으로 로그인 후 CSV 다운로드 방식이 가장 안정적입니다.
개별 도매시장 공개 CSV
- 가락·부산·광주도매시장 등은 자체 홈페이지에서 일별 경매결과를 엑셀·CSV로 배포합니다.
- URL 패턴이 고정돼 있다면 requests 단독 호출로도 충분합니다.
필수 기술 스택
Python 3.11+
- 가상환경을 권장합니다.
python -m venv venv && source venv/bin/activate
pip install requests pandas schedule beautifulsoup4 selenium openpyxl
크롬드라이버 & Selenium
- 크롬 버전에 맞는 드라이버 다운로드 후
PATH
에 등록합니다.
RPA 툴
- UiPath Community Edition: 셀렉터 기반 브라우저 조작, 이메일/슬랙 알림 액티비티 풍부.
- Power Automate Desktop: 윈도우 환경에 최적화, 무료 사용 가능.
- Python RPA 라이브러리(PyAutoGUI): 단순 GUI 자동화 시 경량 대안.
파이썬 API 호출 기본 예제
import requests, pandas as pd, datetime as dt
TODAY = dt.date.today().strftime("%Y%m%d")
API_KEY = "발급받은_인증키"
url = (
f"http://openapi.at.or.kr/openapi/service/PriceInfoService/"
f"getItemList?serviceKey={API_KEY}&searchDate={TODAY}&cropName=대파&"
"marketName=가락&format=json"
)
res = requests.get(url, timeout=10)
res.raise_for_status()
items = res.json()["response"]["body"]["items"]["item"]
df = pd.json_normalize(items)
df.to_csv(f"leek_price_{TODAY}.csv", index=False)
print(df.head())
BeautifulSoup + Selenium 웹 스크래핑
세션 쿠키 기반 단순 크롤링
import requests, pandas as pd
login_url = "https://newgp.nonghyup.com/login"
data_url = "https://newgp.nonghyup.com/auction/dailyPriceCsv"
with requests.Session() as s:
s.post(login_url, data={"id":"USER", "pw":"PASSWORD"})
csv_raw = s.get(data_url, timeout=10).content.decode("euc-kr")
df = pd.read_csv(pd.compat.StringIO(csv_raw))
Tip: 공판장 사이트는 EUC‑KR 인코딩을 사용합니다.
decode("euc-kr")
를 잊지 마세요.
셀레니움 사용 예시
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
driver = webdriver.Chrome()
driver.get("https://newgp.nonghyup.com")
driver.find_element(By.ID, "userId").send_keys("USER")
driver.find_element(By.ID, "userPw").send_keys("PASSWORD")
driver.find_element(By.CSS_SELECTOR, "button.login").click()
sleep(2)
driver.get("https://newgp.nonghyup.com/auction/dailyPrice")
driver.find_element(By.CSS_SELECTOR, "button.downloadCsv").click()
driver.quit()
RPA 워크플로 설계
1. 로봇 흐름 개요
- 시작 트리거
- 윈도우 작업 스케줄러에서 매일 06:30 실행
- 데이터 수집
- Python 스크립트 실행(공공API)
- Selenium 시나리오 실행(공판장 CSV)
- 데이터 통합 및 가공
- pandas로 두 데이터프레임 병합
to_excel("daily_agri_prices.xlsx")
저장
- 저장소 업로드
- AWS S3·Google Drive·FTP 중 택1
- 알림 전송
- Slack Webhook or 카카오톡 BizMessage → “오늘 시세 업데이트 완료”
2. UiPath 예시
- Sequence →
Start Process
활동으로python.exe price_job.py
실행 - If 로직으로 반환 코드 검사 후 실패 시 알림
- Send Mail → Outlook·SMTP 선택
- Move File → 네트워크 드라이브 백업
일일 자동 실행 구성
리눅스 – crontab
$ crontab -e
30 6 * * * /home/ubuntu/venv/bin/python /home/ubuntu/jobs/price_job.py >> /home/ubuntu/logs/price.log 2>&1
윈도우 – Task Scheduler
- 작업 만들기 → ‘트리거’ 매일 06:30
- ‘동작’ → 프로그램/스크립트:
python.exe
, 인수:C:\jobs\price_job.py
- 실패 시 재시도 3회 설정
에러 처리·모니터링
- requests:
Timeout
,HTTPError
예외 캐치 후 알림 전송 - Selenium:
NoSuchElementException
→ 화면 캡처 첨부 - 로그 관리:
logging.handlers.TimedRotatingFileHandler
로 파일 사이즈 제어 - 알림: Slack Webhook
payload={"text": "[경고] 시세 수집 실패"}
확장 - 대시보드 & 예측 모델
- Metabase·Superset: CSV 파일 경로 연결만으로 대시보드 생성
- Plotly Dash: 실시간 그래프 제공, Heroku·Railway 배포 용이
- Prophet·sktime: 가격 변동 예측 모델 구축으로 선제적 재고 관리 가능
마치며
파이썬과 RPA의 결합은 ‘반자동’이 아닌 ‘완전 자동’ 단계로 가는 지름길입니다. aT OpenAPI 같은 안정적인 데이터를 1차 소스로, Selenium·RPA를 보조 소스로 삼으면 정확도와 안정성을 동시에 확보할 수 있습니다. 지금 당장 한 번만 환경을 세팅해 두면 매일 반복되는 작업에서 해방되고, 숫자가 아닌 전략에 집중할 수 있습니다.
반응형
'INFO' 카테고리의 다른 글
육십갑자표 나이 조견표 (60갑자표) (0) | 2025.07.27 |
---|---|
서울근교 별보기 좋은 곳 베스트10 (0) | 2025.07.26 |
검찰 인사 명단 2025 법무부 고위간부 인사 발표, 고검장 검사장 승진 (0) | 2025.07.25 |
우리은행 환전우대쿠폰 90% (0) | 2025.07.23 |
KISA 소프트웨어 긴급 보안패치 시스템 업데이트 팝업 안내 aysign4PC, touchEn, nxKey (0) | 2025.07.22 |