기록 블로그

프로그래머스 데브코스-데이터 엔지니어/TIL(Today I Learned)

04/18 7일차 파이썬으로 웹 데이터를 크롤하고 분석하기 (2)

usiohc 2023. 4. 18. 17:01

파이썬으로 웹 데이터를 크롤하고 분석하기


주요 메모 사항


인터넷의 탄생 배경쯤

  1. 태초의 컴퓨터
  2. 이 두 컴퓨터를 연결하는 네트워크의 탄생
  3. 이 네트워크를 묶어 근거리 지역 네트워크 (Local Area Network, LAN) 탄생
  4. 범지구적으로 연결된 네트워크 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의 구조

브라우저에 대한 넓고 얕은 지식

  • 브라우저의 렌더링 엔진은 웹 문서를 로드한 후, 파싱을 진행
  • 이를 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가 필요

이 개념을 이해시키기 위한 강의? 같은 느낌이였다