
파이썬으로 웹데이터 크롤하고 분석하기 (2)
인터넷 : 여러 컴퓨터끼리 네트워크를 연결한 것
웹 : 인터넷 상에서 정보를 교환하기 위한 시스템
최초의 컴퓨터 출현, 문서 작업 및 복잡한 계산 등 인간이 하는 일을 위임
두 컴퓨터를 연결하는 네트워크 탄생, 두 컴퓨터 사이의 상호작용 가능
네트워크들을 묶어 근거리 지역 네트워크 LAN(Local Area Network) 탄생 LAN 내의 컴퓨터 사이의 상호작용 가능
범지구적으로 연결된 네트워크 Inter Network, 인터넷의 탄생
인터넷에서 정보를 교환할 수 있는 환경, www(world wide web), 웹의 탄생
클라이언트(Client) : 정보를 요청하는 컴퓨터
서버(Server) : 정보를 제공하는 컴퓨터
클라이언트가 서버에 정보를 요청
요청에 대해 서버가 작업을 수행
수행에 대한 작업의 결과를 클라이언트에게 응답
웹 상에서 정보를 주고 받기 위한 약속
HTTP 요청(Request) : 클라이언트에서 서버로 정보를 요청하는 것
HTTP 응답(Response) : 요청도니 정보에 대해서 서버가 클라이언트에게 응답하는 것
쇼핑으로 상품을 구매해 받으려고 한다.(Request)
이를 위해서는 받는 사람의 이름(Host), 받는 사람의 주소(Resource), 배송 방법(Method) 등의 정보를 입력해야 한다.
택배가 도착하면(Response)
택배가 오고가는데 필요한 정보인 송장(Head : 요청/응답에 대한 정보)과 내용물(Body : 원하는 내용물)을 받을 수 있다.
정보 요청
GET / HTTP 1.1 -> 요청정보
Host: www.programmers.com -> 정보 출처
User-Agent: Mozilla/5.0 -> 사용자(요청자)에 대한 정보
…
클라이언트가 섯버에 요청하는 과정에서 변경사항을 전달 할 때 Body에 변경하고자 하는 정보를 담아 전달하기도 함
정보 응답
HTTP/1.1 200 OK
…
<html>…</html> -> 요청한 정보(HTTP 요청의 Body)
웹페이지 : 웹 속에 있는 문서 하나, 매우 복잡한 줄글(HTTP 요청의 Body)로 이루어져있다.
웹사이트 : 웹 페이지의 모음
웹 브라우저는 HTML 요청을 보내고 HTTP 응답에 담긴 HTML 코드를 렌더링 해 우리가 보기 쉬운 형태로 화면을 그려주는 역할을 한다.
<!DOCTYPE html>
<html>
<head>
<title>Example Document</title>
</head>
<body>
<h1>Hello World!</h1>
<p>My name is Mussg!</p>
</body>
</html>
<!DOCTYPE html>로 HTML5임을 명시<html>태그로 감싸져 있다.# requests 라이브러리를 불러온 후, NAVER의 홈 페이지를 요청한 후 응답 받아보기
import requests
res = requests.get('http://www.naver.com')
[200] : 요청에 대한 status code, 요청이 이루어짐을 의미
header와 body 확인
res.headers
res.text
.text는 단순하게 모든 텍스트를 가지고 온다.
post 활용을 위해 https://webhook.site 이용
위 사이트에서 얻은 임의의 링크로 실습을 진행
res =requests.post('https://webhook.site/6e0346b1-262f-4948-9315-7f92e20d6bc3')
갱신을 위해 payload를 포함해서 post를 보낸다.
# payload와 함께 POST를 보낸다.
payload = {"name": "Hello", "age": 13}
res =requests.post('https://webhook.site/6e0346b1-262f-4948-9315-7f92e20d6bc3')
실행 전과는 달라졌음을 알 수 있다.
웹 스크래핑 : 특정한 목적으로 특정한 웹 페이지에서 데이터를 추출하는 것(데이터 추출)
웹 크롤링 : URL을 타고 다니며 반복적으로 데이터를 가져오는 과정(데이터 색인)
브라우저의 렌더링 엔진은 웹 문서를 로드한 후 파싱을 진행해 head, body에는 어떤 태그, 요소가 있는지 트리를 만드는데 이 결과를 DOM이라고 한다.