네트워크 : 여러 컴퓨터를 연결하는 형태
↓
근거리 지역 네트워크 LAN : 네트워크를 묶은 것
↓
인터넷 : 범지구적으로 연결된 네트워크
↓
웹 : 인터넷에서 정보를 교환할 수 있는 환경
<!DOCTYPE html>
<html>
<head> # 문서에 대한 정보
<title>Example Document</title>
</head>
<body> # 문서의 내용
<h1>Hello World!</h1>
<p>Hello world!</p>
</body>
</html>
HTTP통신을 진행할 수 있는 python 라이브러리
%pip install requests
import requests
res = request.get("https://www.naver.com")
res
res.headers # Header확인
res.text # Body를 텍스트 형태로 확인
payload = {"name":"Hello", "age":13}
res = requests.post("https://webhook.site/c525534c-34e5-42ca-bffb-800ac589aaba", payload)
res
res.status_code # 상태코드 확인
특정한 목적으로 특정 웹 페이지에서 데이터를 추출하는 것 → 데이터 추출
ex) 날씨 데이터 가져오기, 주식 데이터 가져오기
URL을 타고다니며 반복적으로 데이터를 가져오는 과정 → 데이터 색인
ex) 검색 엔진의 웹 크롤러
Robot Exclusion Protocol : 로봇 배제 프로토콜
# 모든 user-agent 접근 불허
User-agent: *
Disallow: /
# 모든 user-agent 접근 허용
User-agent: *
Allow: /
# 특정 user-agent 접근 불허
User-agent: Name
Disallow: /
robot.txt : 웹 사이트 및 웹 페이지를 수집하는 로봇들의 무단 접근을 방지하기 위해 만들어진 로봇 배제 표준(Robot Exclusion Standard)이자 국제 권고안
웹 서버를 요청할 때 사용자 에이전트 HTTP헤더에 나의 브라우저 정보를 전달하면 웹 서버가 나를 진짜 사용자로 인식할 수 있게됨
나의 User Agent 확인
import requests
res = requests.get("https://www.naver.com/robots.txt")
print(res.text)
→ 출력 결과
User-agent: *
Disallow: /
Allow : /$
Document Object Model
var imgElement = document.createrElement("img");
document.body.appendChild(imgElement);
document.getElementByTagName("h2");
브라우저는 HTML을 파싱해서 DOM을 생성, 이를 바탕으로 요소를 변경하거나 찾을 수 있음 → 파이썬으로 HTML을 분석하는 HTML Pareser 필요