파이썬으로 웹 데이터를 크롤하고 분석하기
주요 메모 사항
인터넷의 탄생 배경쯤
- 태초의 컴퓨터
- 이 두 컴퓨터를 연결하는 네트워크의 탄생
- 이 네트워크를 묶어 근거리 지역 네트워크 (Local Area Network, LAN) 탄생
- 범지구적으로 연결된 네트워크 Inter Network - 인터넷 (Internet) 탄생
HTTP (Hypertext Transfer Protocol)
하이퍼텍스트를 빠르게 교환하기 위한 프로토콜의 일종, 규칙
- 서버와 클라이언트의 사이에서 어떻게 메시지를 교환할지를 정해놓은 규칙
- 구성은 요청, 응답이 이루어지며 일반적으로 80번 포트를 사용
- 클라이언트가 서버에 정보를 요청하면 응답 코드와 내용을 전송하고 클라이언트와의 연결을 종료
- (http:// 에서 //를 쓰지 않아도 된다는 것은 처음 알았다 -> 멋으로 만들었다고함)
웹 스크래핑과 웹 크롤링
- 스크래핑, 웹 페이지들로부터 우리가 원하는 정보를 추출 -> 추출
- 크롤링, 크롤러를 이용해서 웹 페이지의 정보를 인덱싱 -> 색인
robots.txt
웹 크롤러 같은 로봇들의 접근을 제어하기 위한 규약
- 안내문 형식으로 크롤링을 자제해 달라는 권
- 아직 권고안이라 꼭 지킬 의무는 없다고함 (불문율)
- robots.txt는 웹사이트의 루트 경로에 있어야함
hollys의 robots.txt
User-agent: *
Disallow: /membership
Disallow: /myHollys
웹 브라우저가 HTML을 다루는 방법
DOM (Document Object Model)
브라우저에 대한 넓고 얕은 지식
- 브라우저의 렌더링 엔진은 웹 문서를 로드한 후, 파싱을 진행
- 이를 DOM 이라고 함
- JavaScript에서 HTML의 문서에 접근하는 API를 뜻하는 용어
DOM Tree를 순회해서 특정 원소를 추가
var imgElement = document.createElement("img");
document.body.appendChild(imgElement);
DOM Tree를 순회해서 특정 원소를 찾기
document.getElementsByTagName("h2")
브라우저의 렌더링 요약
- 브라우저는 HTML을 파싱해서 DOM을 생성
- 이를 바탕으로 요소를 변경하거나 찾을 수 있음
- 파이썬으로 HTML을 분석하는 HTML Parser가 필요
공부하며 어려웠던 내용
오늘도 이론 위주의 강의였는데 웹 스크래핑과 크롤링의 차이점에 대해서는 처음 알았다. 개인적으로는 그냥 정적 크롤링과 동적 크롤링 이라고 생각 하고 있었는데, 그게 아니라 데이터를 추출해 내는 하나의 방법이었음.
또, DOM이라는 개념은 처음 들어본 것 같다. 문서의 구조에 대한 문서 객체 모델이라고 하는 DOM을 처음에 조금 이해하기 힘들었다. 뭔가 엄청 추상적인?
결국엔
- 파이썬으로 HTML을 분석하는 HTML Parser가 필요
이 개념을 이해시키기 위한 강의? 같은 느낌이였다
'프로그래머스 데브코스-데이터 엔지니어 > TIL(Today I Learned)' 카테고리의 다른 글
04/20 9일차 파이썬으로 웹 데이터를 크롤하고 분석하기(4) (0) | 2023.04.20 |
---|---|
04/19 8일차 파이썬으로 웹 데이터를 크롤하고 분석하기 (3) (0) | 2023.04.19 |
04/17 6일차 파이썬으로 웹 데이터를 크롤하고 분석하기(1) (0) | 2023.04.17 |
04/14 5일차 자료구조 & 알고리즘 풀기 (5) (0) | 2023.04.14 |
04/13 4일차 자료구조 & 알고리즘 풀기 (4) (0) | 2023.04.13 |