05_동적 웹 스크래핑
·
SKN_AI_33/Web_Scraping
동적 웹 스크래핑 (Selenium)동적 페이지란?JavaScript로 화면을 렌더링하는 페이지. 처음 로딩 시 HTML에 데이터가 없고, JS가 실행된 후 데이터가 채워진다.requests로 가져오면 비어있는 HTML만 받음 → Selenium 필요보통 SPA(Single Page Application), 무한 스크롤, 로그인 후 접근 페이지에 해당동적 페이지 구분법개발자 도구(F12) → Network → Fetch/XHR 탭 확인 → 별도 API 요청이 보이면 직접 API 호출이 더 나을 수도 있음requests로 가져온 HTML에서 원하는 데이터가 없으면 → Selenium 사용설치pip install selenium webdriver-manager# WebDriver 자동 관리 (크롬 드라이버 ..
04_정적 웹 스크래핑
·
SKN_AI_33/Web_Scraping
정적 웹 스크래핑 (requests + BeautifulSoup)웹 스크래핑이란?웹 페이지의 HTML을 가져와 필요한 데이터를 추출하는 기법.방법 설명 적합한 경우정적 스크래핑HTML을 직접 파싱서버 렌더링 페이지 (새로고침 없이 내용이 있는 경우)동적 스크래핑브라우저를 자동 제어JavaScript로 데이터를 불러오는 페이지스크래핑 시 robots.txt 확인 & 과도한 요청 금지 (서버 부하 주의)설치pip install requests beautifulsoup4 lxml# lxml: BeautifulSoup 파서 (html.parser보다 빠르고 엄격)HTML 기초 복습 상품명 10,000원 상세보기 태그: , , , , 속성: class, id, href, src, alt텍스트..
03_네이버 API와 DB 저장
·
SKN_AI_33/Web_Scraping
네이버 API + DB 저장 연동개요네이버 검색 API로 뉴스 데이터를 수집하고, MySQL DB에 저장하는 전체 파이프라인.[네이버 API] → requests → [Python] → mysql-connector → [MySQL DB] ↓ 데이터 가공/정제네이버 API 설정애플리케이션 등록네이버 개발자 센터 접속Application → 애플리케이션 등록사용 API: 검색 (뉴스, 블로그, 쇼핑 등) 선택Client ID, Client Secret 발급.env 설정NAVER_CLIENT_ID=발급받은_클라이언트_IDNAVER_CLIENT_SECRET=발급받은_클라이언트_시크릿DB_HOST=localhostDB_USE..
02_MySQL Python 연동
·
SKN_AI_33/Web_Scraping
MySQL Python 연동 (mysql-connector-python)설치pip install mysql-connector-pythonpip install python-dotenv # .env 파일 관리연결 구조 이해Python 코드 ↓ mysql-connector-pythonConnection 객체 ← 데이터베이스 연결 세션 (소켓 하나) ↓Cursor 객체 ← SQL 실행 도구 ↓ .execute(sql)MySQL 서버 ← 실제 데이터 저장/조회기본 연결 패턴import mysql.connectorfrom dotenv import load_dotenvimport osload_dotenv()# 연결 (connection = 세션 = 소켓)conn = mysql.connecto..
01_OpenAPI 활용
·
SKN_AI_33/Web_Scraping
OpenAPI 활용API란?Application Programming Interface. 프로그램 간 데이터를 주고받는 규칙/인터페이스.OpenAPI: 공공기관이나 기업이 외부에 공개한 APIREST API: HTTP(S)를 통해 JSON/XML 형태로 데이터를 주고받는 방식API Key: API 사용 허가증. 누가 얼마나 사용했는지 추적/제한용HTTP 요청 구조GET https://api.example.com/v1/menus?category=korean&limit=10 ├── 기본 URL (Base URL) ├── 엔드포인트 (Endpoint): /v1/menus └── 쿼리 파라미터 (Query Params): category=korean&limit=10응답 (JSON):{ "s..
06_예외 처리
·
SKN_AI_33/Python
예외 처리 (Exception Handling)예외(Exception)란?프로그램 실행 중 발생하는 오류. 예외가 처리되지 않으면 프로그램이 강제 종료된다.# 예외 발생 과정10 / 0# 1. 파이썬이 예외 상황 감지# 2. 해당 상황에 맞는 예외 클래스(ZeroDivisionError)를 찾음# 3. 예외 객체 생성# 4. 예외를 raise (던짐)# → 처리하지 않으면 프로그램 종료 + 오류 메시지 출력try / except 기본print("시작")try: result = 10 / 0 # 예외 발생 가능 코드 print("결과:", result) # 예외 발생 시 이 줄은 건너뜀except: print("0으로 나눌 수 없습니다") # except 블록 종료 ..
05_모듈과 패키지
·
SKN_AI_33/Python
모듈과 패키지모듈 (Module)파이썬 코드가 담긴 .py 파일. 함수, 클래스, 변수 등을 다른 파일에서 불러와 재사용할 수 있게 해준다.# 모듈 가져오기import os # os 모듈 전체 임포트import math # math 모듈# 별칭 사용import numpy as np # np라는 이름으로 사용import pandas as pd# 특정 것만 가져오기from math import pi, sqrtfrom functools import reduce# 전부 가져오기 (권장 X - 이름 충돌 위험)from math import *# 사용print(os.getcwd()) # os 모듈의 g..
04_함수
·
SKN_AI_33/Python
함수 (Function)함수란?특정 기능을 수행하는 코드 묶음. 한 번 정의하면 여러 번 재사용 가능.재사용성: 같은 코드를 반복 작성 안 해도 됨가독성: 코드를 의미 있는 단위로 나눌 수 있음유지보수: 수정이 필요할 때 한 곳만 바꾸면 됨# 정의 (def 키워드)def 함수명(매개변수): # 실행 코드 return 반환값# 호출결과 = 함수명(인자)함수의 4가지 형태# 1. 입력 O, 반환 O (가장 일반적)def add(a, b): return a + bresult = add(3, 4) # result = 7# 2. 입력 O, 반환 Xdef greet(name): print(f"안녕하세요, {name}님!")greet("홍길동") # None 반환 (return..