Search
ℹ️

Data Analysis Basic

가. 스크래핑 vs 크롤링 vs 파싱

1) 스크래핑(scraping)

웹 페이지에서 데이터를 수집해서 가공하는 프로그램
필요한 정보를 데이터가 위치한 인식자(HTML elements 등)에서 찾음

2) 크롤링(crawling)

웹 페이지의 정보를 인덱싱 또는 웹 페이지를 수집하는 프로그램
웹 페이지 전체를 보고 필요한 정보를 찾아서 색인을 생성함
→ bot의 일종인 crawler가 웹 페이지 전체를 보고 필요한 정보를 찾음

3) 파싱(parsing)

복잡한 폼(HTML, XML 등)에서 원하는 데이터를 특정 패턴이나 순서로 추출하고 가공하는 것
→ 복잡한 폼이란 대게 자연어가 아닌 것으로 작성된 문서
→ 일반인이 알아보기 어려운 문서에서 일련의 데이터를 추출하여 일반인이 알아볼 수 있는 데이터로 가공하는 것이로 해석할 수 있음

나. pyautogui

1) 설치

pip install pyautogui

2) 마우스 제어

필요할 때 참고

3) 키보드 제어

필요할 때 참고

4) 메시지 박스

필요할 때 참고

5) 이미지로 좌표찾기

필요할 때 참고

다. requests

1) 설치

pip install requests

2) HTTP GET 요청 및 응답

3) HTTP POST 요청 및 응답

4) Header, Cookie 추가

5) Session

TCP 통신을 연결한 상태에서 http 통신을 여러번 송수신할 수 있음
→ session을 사용하지 않는 경우, request를 보낼 때마다 매번 TCP 연결을 해야함
session이 선언되면 반드시 닫아야 하기 때문에 with 구문을 활용하여 간소하게 사용할 것 권장

라. aiohttp

1) requests vs aiohttp

requests는 기본적으로 동기적으로 동작하는 http 라이브러리
aiohttp는 requesets의 signature와 대부분 유사하나 asyncio 기반으로 동작하는 http 라이브러리

마. beautifulsoup

1) 설치

pip install beautifulsoup4

2) 단수 데이터 가져오기(select_one 활용)

3) 복수 데이터 가져오기(select 활용 )

바. selenium

1) 설치

pip install selenium

2) selenium 활용하는 이유

자바스크립트로 동적 생성된 데이터를 크롤링
다양한 HTML 요소에 마우스 및 키보드 입력 등의 이벤트 실행

3) 자동화 가능한 업무

자동 로그인
자동 이메일 전송
자동 좋아요 클릭 등

사. openpyxl

1) 설치

pip install openpyxl

2) Excel 데이터 쓰기

예제

3) Excel 데이터 읽기

예제

Reference

파이썬 웹크롤링과 자동화, https://wikidocs.net/book/4706