가. 스크래핑 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
•
크롤링과 스크래핑의 활용, https://www.inflearn.com/course/파이썬-동시성-프로그래밍/dashboard