본문 바로가기

S-DEV/다크웹

웹 크롤링 기본 개념

728x90

∙ 매크로 

- 여러 개의 명령어를 묶어서 하나의 입력으로 처리 

- 복잡, 반복되는 작업을 단순화 또는 자동화

- 온라인 게임에서의 자동사냥 등으로 많이 활용

 

∙ 웹 프로토콜 이해

- 팀 버나스리 경 : HTTP  설계자이며, 영국의 컴퓨터 과학자이다.

 

- HTTP (Hyper Text Transfer Protocol)

> TCP 프로토콜을 사용하며 요청과 응답으로 구성 

> 응답을 통해 전송된 HTTP  Response Body는 후에 브라우저에서 랜더링 되어 사용자에게 보인다.

 

- HTTP Method 

메서드 내용
GET 특정 리소스의 접근을 요청, 오직 데이터를 받기만 가능 
POST 서버가 처리할 자료를 보냄, GET으로 보낼 수 없는 자료를 전송하고자 할 때 사용
HEAD GET 요청과 동일한 응답을 요구, 서버의 본문 없이 헤더만 응답
PUT 자료를 서버에 전송
DELETE 해당 리소스의 삭제를 요청
CONNECT 프록시 사용
OPTIONS 목적 리소스 통신 설정
TRACE  이전까지 요청한 정보의 목록 요청
PATCH 리소스 수정

 

- 주요 헤더 

Header 위치 설명
User-Agent 요청 클라이언트의 브라우저 및 운영체제 정보
Referer 요청 이전 방문 사이트
Cookie 요청 브라우저 인증값
Status Code 응답 서버로부터의 응답값
Set-Cookie 응답 Cookie에 값 설정

 

- HTTP 응답 코드

상태 코드 내용
200 성공 상태 코드
300 클라이언트 요청에 대해 다른 위치 및 대안을 제공
400 클라이언트의 잘못된 요청
500 서버의 잘못된 처리

 

- URI (Uniform Resource Identifer)

웹 서버가 리소스를 고유하게 식별할 수 있도록 하는 것

 

- URL (Uniform Resource Locator)

스킴에 따라 문법이 다르지만 일반적으로 아래와 같은 구조를 선택적으로 사용

 

- 스킴

사용할 프로토콜, 리소스에 어떻게 요청, 접근할 것인지를 명시

웹에서는 주로 HTTP, HTTPS 

 

- 경로 

호스트에서 제공하는 클라이언트가 접근하고자 하는 자원의 주소

 

- 질의 (Query String)

클라이언트가 자원을 GET 요청 시 필요한 데이터를 함께 넘겨줄 목적

 

- 프래그먼트

HTML에 각각의 요소에 id속성을 부여하고, id가 있는 곳으로 스크롤 이동

 

- 개발자 모드

브라우저에서 F12, 동작중인 웹 페이지의 정보 획득

주요 옵션 설명
Elements 웹 페이지 요소 접근
Console Javascript 실행
Sources 해당 페이지에서 요청한 이미지 또는 JS, CSS정보
Network 페이지 로딩 정보
Application 쿠키 정보

 

- HTML (Hyper Text Markup Language)

웹 사이트의 모습을 기술하기 위한 마크업 언어

태그로 구성 (<head>, <title>, <body>, <script>...) 

브라우저에서 DOM(Document Object Model)이라는 표준 형식으로 파싱

개발자모드의 Elements 영역에서 분석 가능 

 

- JavaScript

클라이언트 브라우저에서 동작하는 스크립트 언어

모든 웹 브라우저에 인터프리터가 내장

개발자 모드의 Console에서 스크립트 실행 가능하며 Source에서 로드된 JS 파일 확인

 

- JQuery Ajax

> JQuery javascript 라이브러리

모든 웹 브라우저에 인터프리터가 내장 

코드 보기, 문서 객체, 애니메이션 만들기, 이벤트 제어 및 Ajax 개발을 쉽게 하도록 설계

 

> Ajax(Asynchronous JavaScript)

동적인 화면 출력 및 표시 정보와의 상호작용을 위한 Javascript

웹 서버와 비동기적으로 데이터를 교환하고 조작

 

'S-DEV > 다크웹' 카테고리의 다른 글

다크웹  (0) 2023.08.17
데이터베이스  (0) 2023.08.13
Web Crowlling - 1  (0) 2023.08.07
간단한 Flask 웹 서버  (0) 2023.07.25
pyautogui 사용하기  (0) 2023.07.25