Dev/웹크롤링

[웹크롤링]Web 구조와 개념

#코딩 공부 2024. 9. 19. 23:20

Server & Client Architecture

- client : 브라우저를 활용해 서버에 데이터를 요청 ( request)

- server : 클라이언트의 브라우저에서 데이털르 요청하면 요청에 따라 데이터를 client에 전송 ( response)

 

URL

https://n.news.naver.com/article/079/0003939868?sid=100

 

https:// - protocol

news - Sub Domain

naver.com - Primary Domain : 어떤 서버로 갈지 알려줌  

80 or 443 - port : 서버에 들어가서 어떤 프레임워크로 데이터를 요청할지 선택하는 포트

/article/079/0003939868  - path: 디렉토리 이름 , 경로

?sid=100 - Query : key value 로 구성되어 있는 하나의 데이터에서 어떤 데이터를 볼지 server에 정보 전달

 

*없는 부분

read.nhn - Page (File) : 디렉토리에 있는 파일에 접속, 파일 이름

#fragment - Fragment : # 뒤에 붙는 부분, 페이지 내의 특정위치 지정. 웹페이지 id 값 찾아서 그 화면을 보여줌

 

*http / https 차이

https 는 데이터를 암호화하여 전송, 기본포트는 443

http 는 기본 프로토콜, 데이터를 암호화하지 않음. 기본 포트는 80

HTTP Request Methods

1. Get 방식 : URL 에 쿼리 포함, 쿼리(데이터) 노출, 전송 가능 데이터 작음

2. Post 방식 : Body 에 쿼리 포함, 쿼리(데이터) 비노출, 전송 가능 데이터 많음.

HTTP Status Code

client 와 server가 데이터를 주고 받은 결과 정보 

- 2xx : success

- 3xx : redirect

- 4xx : request error

- 5xx : server error

 

Cookie, Session, Cache

1. cookie

- 클라이언트의 브라우저에 저장하는 문자열 데이터

- ex) 로그인 정보, 내가 봤던 상푸 정보 팝업 다시 보지 않음 등

2. session

- 클라이언트의 브라우저와 서버간의 연결 정보

ex) 자동 로그인

3. cache

-client,server의 RAM(메모리)에 저장하는 데이터

-RAM에 데이터를 저장하면 데이터 입출력 빠름

 

Web Language & Framework

1. Client (frontend)

- html

- css : Bootstrap, Sematic UI, Materialize, Material Design life

- javascript : reat.js, vue.js, angular, jQuery

 

2. Server(Backend)

-python : Django, Flask, FastAPI

-Java : Spring

-Ruby : Rails

-Scala : Play

-Javascript : Express(node.js)

 

Scarping & Crawling

1. scraping : 특정 데이터를 수집하는 작업

2. crawling : 웹서비스의 여러페이지를 이동하며 데이터를 수집하는 작업/ spider,web crrawler, bot 용어 사용

 

 

웹페이지 종류

1. 동적 페이지: 웹 브라우저에 화면이 뜨고 이벤트가 발생하면 서버에서 데이터를 가져와 화면을 변경

-url 새로 고침이 일어나지 않음.

-서버로부터 list 나 dict 을 JSON 포맷으로 받아옴

 

2. 정적 페이지: 웹 브라우저에 화면이 한번 뜨면 이벤트에 의한 화면 변경이 없는 페이지

-url 이 바뀜

- 서버로부터 html 으로 받아옴

 

데이터 수집 방법

1. url 찾기 : 웹페이지 분석 (chrome dev tool)

2. request (URL) : response(data)

 - JSON :동적 페이지

 - html : 정적 페이지

3. Parshing : data를 dataframd(DF)로 바꿔줌

- JSON/html 방법이 달라짐