🙂 HTTP
✔ 인터넷과 웹
- 컴퓨터 발명
- 두 컴퓨터 사이의 네트워크 탄생
- 여러 네트워크를 묶어 근거리 지역 네트워크 (LAN) 탄생
- 범지구적 네트워크인 인터넷 탄생
- 인터넷에서 정보를 교환할수 있는 환경 - WWW (World Wide Web) 탄생
✔ 웹에서 정보 주고받기
Client: 정보를 요청하는 컴퓨터
Server: 정보를 제공하는 컴퓨터
- 클라이언트가 서버에게 정보를 요청
- 요청에 대해 서버가 작업 수행
- 수행한 작업의 결과를 클라이언트에게 응답
✔ HTTP의 구조
Hypertext Transfer Protocol: 웹 상에서 정보를 주고받기 위한 약속
HTTP 요청(Request): 클라이언트에서 서버로 정보를 요청
HTTP 응답(Response): 서버가 클라이언트에게 응답
Request Head
GET / HTTP 1.1
HOST: www.programmers.com
User-Agent: Mozilla/5.0
...
Chrome 개발자 도구 등을 통해 확인 가능.
Response Head
HTTP/1.1 200 OK
...
<html>...</html>
🙂 웹 페이지와 HTML
✔ 웹 사이트와 웹 페이지
웹 페이지: 웹 속에 있는 문서 하나
웹 사이트: 웹 페이지의 모음
✔ 웹 페이지를 만드는 방법
HTTP Response에서 Body: <html> ... </html>
웹 브라우저는 HTML 요청을 보내고, HTTP 응답에 담긴 HTML 문서를 통해 화면을 그려줌
✔ HTML의 구조
HyperText Markup Language
태그로 내용을 묶어 글의 형식을 지정
원하는 내용이 HTML 문서의 "어디에 있지? 어떤 태그에 있지?" 를 관찰해야 함.
🙂 HTTP 통신 코드
✔ Python을 이용해서 HTTP 통신하기
get: 정보를 요청할 때
post: 정보를 갱신할 때 (ex> 로그인)
응답받은 내용이 상당히 방대해서 복잡함.
🙂 웹 스크래핑
✔ 웹 크롤링과 웹 스크래핑
웹 크롤링
크롤러(Crawler)를 이용해서 웹 페이지의 정보를 인덱싱
URL을 타고다니며 반복적으로 데이터를 가져오는 과정 - 데이터 색인
e.g. 검색 엔진의 웹 크롤러
웹 스크래핑
웹 페이지들로부터 우리가 원하는 정보를 추출
특정한 목적으로 특정 웹 페이지에서 데이터를 추출하는 것 - 데이터 추출
e.g. 날씨 데이터 가져오기, 주식 데이터 가져오기, ...
✔ 올바르게 HTTP 요청하기
고려사항
웹 스크래핑/크롤링을 통해 어떤 목적을 달성하고자 하는가?
나의 웹 스크래핑/크롤링이 서버에 영향을 미치지는 않는가?
DDoS: 서버에 무차별 적인 요청을 보내서 서버를 마비시키는 것
로봇 배제 프로토콜(REP: Robot Exclusion Protocol)
웹 브라우징은 사람이 아닌, 로봇으로 진행 가능
무턱대고 모든 사이트의 모든 정보를 취득하는 것이 정당할까?
robots.txt : 로보의 무분별한 접근을 통제하기 위함
🙂 웹 브라우저가 HTML을 다루는 방법
✔ DOM
Document Object Model
= 브라우저의 렌더링 엔진은 웹 문서를 로드한 후, 파싱
왜 브라우저는 DOM을 굳이 만드는가?
✔ 브라우저에 대한 넓고 얕은 지식
DOM의 목적: 각 노드를 객체로 생각하면 문서를 더욱 편리하게 관리할 수 있다.
- DOM Tree를 순회해서 특정 원소를 추가할 수 있다.
- DOM Tree를 순회해서 특정 원소를 찾을 수 있다.
파이썬으로 HTML을 분석하는 HTML Parser가 필요함.
'데이터엔지니어링' 카테고리의 다른 글
| [2주차] 파이썬으로 웹다루기 (4) (0) | 2024.04.04 |
|---|---|
| [2주차] 파이썬으로 웹다루기 (3) (2) | 2024.04.03 |
| [2주차] 파이썬으로 웹다루기 (1) (0) | 2024.04.01 |
| [1주차] 자료구조 / 알고리즘 (5) (0) | 2024.03.29 |
| [1주차] 자료구조 / 알고리즘 (4) (0) | 2024.03.28 |