데브코스/Week 3
Week 3 - 2
out_of_anjoong
2024. 4. 2. 15:59
웹 구조
- HTTP
- 인터넷과 웹
- 네트워크 : 두 컴퓨터를 연결
- 근거리 지역 네트워크(LAN) : 네트워크의 집합
- 인터넷 : 범지구적으로 연결된 네트워크, 여러 컴퓨터 끼리 네트워크를 연결하는 것
- 웹(WWW, World Wide Web) : 인터넷에서 정보를 교환하기 위한 시스템
- 웹에서 정보를 주고받는 방법
- 클라이언트 : 정보를 요청하는 컴퓨터
- 서버 : 정보를 제공하는 컴퓨터
클라이언트가 정보를 요청 -> 요청에 대해 서버가 작업을 수행 -> 수행한 작업의 결과를 클라이언트에게 응답
- 웹에서 정보를 주고받는 방법
- HTTP의 구조
- 정의 : HyperText Transfer Protocol의 약자이며 웹 상에서 정보를 주고받기 위한 약속
- HTTP 요청(Request) : 클라이언트가 서버로 정보를 요청하는 것
- HTTP 응답(Response) : 요청된 정보에 대해 서버가 클라이언트에게 응답하는 것
- Head : 요청/응답에 대한 정보, Body : 내용물
- 인터넷과 웹
- 웹 사이트와 웹 페이지
- 웹 페이지 : 웹 속에 있는 문서 하나
- 웹 사이트 : 웹 페이지의 모음
- 웹 브라우저 : HTTP 요청을 보내고 HTTP 응답에 담긴 HTML 문서를 우리가 보기 쉬운 형태로 화면을 그려주는(랜더링) 역할을 담당
Web Scraping 기초
- 웹 크롤링과 웹 스크래핑
- 웹 스크래핑 : 웹 사이트에서 우리가 원하는 정보를 추출(특정 웹 페이지에서 데이터를 추출)
- 웹 크롤링 : 크롤러를 이용해서 웹 페이지의 정보를 인덱싱(URL을 타고다니며 반복적으로 데이터를 가져오는 과정)
- 올바르게 HTTP 요청하기
- 웹 브라우징은 사람이 아닌 로봇이 진행할 수 있음.
- REP(Robot Exclusion Protocol) : 로봇 배제 프로토콜
- robots.txt : 서버에 웹 페이지를 올릴 때 같이 올려 rep 명시.
- User-agent : 규칙이 적용되는 대상 사용자 에이전트
ex) User-agent: * - 모든 user agent를 뜻함. - Disallow : 크롤링을 금지할 웹 페이지
ex) Disallow: / - 모두 차단 - Allow : 크롤링을 허용할 웹 페이지
ex) Allow: /$ - 현재 페이지만 허용
- User-agent : 규칙이 적용되는 대상 사용자 에이전트
- robots.txt : 서버에 웹 페이지를 올릴 때 같이 올려 rep 명시.
- 정보 요청 : GET
import requests
res = requests.get("https://www.naver.com") # HTTP 응답이 담겨있음.
res.headers # Header 정보 확인
res.text # Body를 텍스트 형태로 확인
# <Response [200]> 스테이터스 코드(응답 코드)가 리턴되며 200은 OK
- 정보 갱신하는 것을 요청하기 : POST
payload = {"name": "Hello", "age": 13} # post는 파라미터로 json 객체(딕셔너리)를 넣어 줘야한다.
res = requests.post("https://webhook.site/9b800196-6b9f-4580-a7bd-fe479ae7771f", data=payload)
res.status_code # 스테이터스 코드 확인
- DOM(Document Object Model) : 문서 객체 모델, 웹 페이지의 콘텐츠 및 구조, 그리고 스타일 요소를 객체로 표현하여 프로그래밍 언어가 해당 문서에 접근하여 읽고 조작할 수 있도록 API를 제공하는 일종의 인터페이스. JS 같은 스크립트 언어가 쉽게 웹 페이지에 접근하여 조작할 수 있게끔 연결해주는 역할을 한다.
다음 시간에 계속....