[데브코스 TIL] DAY8 파이썬으로 웹다루기 (2)

May·2024년 4월 2일

오늘의 학습 주제


1. HTTP
2. 웹페이지와 HTML
3. 나의 첫 HTTP 통신 코드
4. 윤리적으로 웹 스크래핑, 크롤링 진행하기
5. 웹 브라우저가 HTML을 다루는 방법

 

1.인터넷 사용자간의 약속, HTTP


1.인터넷과 웹

- 인터넷은 여러 컴퓨터끼리 네트워크를 연결한 것
- Web은 인터넷 상에서 정보를 교환하기 위한 시스템

2.웹에서 정보 주고받기

- 클라이언트(Client) : 정보를 요청하는 컴퓨터
- 서버(Server) : 정보를 제공하는 컴퓨터
- 클라이언트가 서버에게 정보를 요청 → 요청에 대해서 서버가 작업을 수행 → 수행한 작업의 결과를 클라이언트에게 응답

3.HTTP의 구조

- HTTP(Hypertext Transfer Protocol) : 웹 상에서 정보를 주고받기 위한 약속
- HTTP 요청(Request) : 클라이언트에서 서버로 정보를 요청하는 것
- HTTP 응답(Response) : 요청된 정보에 대해 서버가 클라이언트에게 응답하는 것
- HTTP는 요청/응답에 대한 정보를 담는 Head와 내용물인 Body로 나뉜다

2.웹페이지와 HTML


1.웹사이트와 HTML

- 웹 페이지 : 웹 속에 있는 문서 하나
- 웹 사이트 : 웹 페이지의 모음은 웹 사이트
- 웹 브라우저 : HTML 요청을 보내고, HTTP 응답에 담긴 HTML 문서를 우리가 보기 쉬운 형태로 화면을 그려주는 역할을 담당
- 웹 페이지는 HTML이라는 형식으로 되어있고, 웹 브라우저는 우리가 HTTP 요청을 보내고, 응답받은 HTML 코드를 렌더링 해준다.

2.HTML의 구조

- HTML(HyperText Markup Language)
- 자세한 내용 : 파이썬으로 웹다루기 (1) 참고

3.나의 첫 HTTP 통신 코드


1.Python을 이용해서 HTTP 통신하기

-실습 파일 참고

4.윤리적으로 웹 스크래핑, 크롤링 진행하기


1.웹 크롤링과 웹 스크래핑

- 웹 크롤링 : URL을 타고다니며 반복적으로 데이터를 가져오는 과정(데이터 색인)
	e.g. 검색 엔진의 웹 크롤러
- 웹 스크래핑 : 특정한 목적으로 특정 웹 페이지에서 데이터를 추출하는 것(데이터 추출)
	e.g. 날씨 데이터 가져오기, 주식 데이터 가져오기.

2.올바르게 HTTP 요청하기

- 웹 스크래핑/크롤링을 통해 어떤 목적을 달성하고자 하는가?
- 나의 웹 스크래핑/크롤링이 서버에 영향을 미치지는 않는가?
- 로봇 배제 프로토콜(REP : Robot Exclusion Protocol)
  웹 크롤러들은 이 규칙을 지키면서 크롤링을 진행 (robots.txt 실습 파일 참고)

    User-agent: * #모든 user-agent에 대해서 접근을 거부
    Disallow: /

    User-agent: * #모든 user-agent에 대해서 접근을 허용
    Allow: /

    User-agent: MussgBot #특정 user-agent에 대해서 접근을 불허
    Disallow: /

5.웹 브라우저가 HTML을 다루는 방법


1.DOM(Document Object Model)

-브라우저의 렌더링 엔진은 웹 문서를 로드한 후, 파싱을 진행하는데, 이를 DOM이라고 한다.

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

- DOM의 목적
각 노드를 객체로 생각하면 문서를 더욱 편리하게 관리할 수 있다

- DOM을 다루는 예시
	1) DOM Tree를 순회해서 특정 원소를 추가할 수 있다.
    	var imgElement = document.createElement("img");
    	document.body.appendChild(imgElement);

	2) DOM Tree를 순회해서 특정 원소를 찾을 수 있다.
    	document.getElementsByTagName("h2")
Q. 브라우저는 왜 HTML을 DOM으로 바꿀까?
	- 원하는 요소를 동적으로 변경해줄 수 있다.
	- 원하는 요소를 쉽게 찾을 수 있다.
결론.
	브라우저는 HTML을 파싱해서 DOM을 생성한다.
	이를 바탕으로 요소를 변경하거나 찾을 수 있다.
	파이썬으로 HTML을 분석하는 HTML Parser가 필요하다.

0개의 댓글