정적 페이지
정적 페이지(Static Page)는 항상 같은 내용을 제공하는 웹 페이지
정적 페이지는 서버에서 미리 HTML 파일을 생성하여 클라이언트에게 제공한다.
정적 페이지는 보통 HTML, CSS, JavaScript 등을 사용하여 작성된다.
동적페이지
동적 페이지(Dynamic Page)는 클라이언트의 요청에 따라 내용이 동적으로 생성되는 웹 페이지
동적 페이지는 보통 서버 측에서 요청을 처리하고, 그 결과를 HTML 코드로 생성하여 클라이언트에게 전달한다.
동적 페이지는 CGI(Common Gateway Interface), 서블릿(Servlet), JSP(JavaServer Pages), ASP(Active Server Pages) 등을 사용하여 작성된다.
정적 페이지와 동적 페이지의 가장 큰 차이점
내용이 생성되는 시점이다.
정적 페이지는 미리 생성되어 있으므로, 클라이언트의 요청에 따라서 항상 같은 내용을 제공한다.
반면에 동적 페이지는 클라이언트의 요청에 따라서 내용을 동적으로 생성하므로, 매번 다른 내용을 제공할 수 있다.
동기
동기는 어떤 작업이 수행 중일 때, 그 작업이 완료될 때까지 다른 작업을 수행하지 않는 방식을 말한다.
즉, 작업이 순차적으로 실행되며, 다음 작업은 이전 작업이 완료된 이후에 시작된다.
비동기
반면에 비동기는 어떤 작업이 수행 중일 때, 그 작업이 완료되지 않았더라도 다른 작업을 수행하는 방식을 말한다.
즉, 작업이 병렬적으로 실행되며, 다음 작업은 이전 작업이 완료되지 않더라도 시작될 수 있다.
비동기 작업은 주로 콜백(callback), 프로미스(promise), async/await와 같은 기법을 사용하여 구현한다.
블로킹
동기는 작업이 순차적으로 실행되기 때문에 작업을 처리할 때 블로킹(blocking)이 발생할 수 있다.
이러한 블로킹이 발생하면, 다음 작업이 실행되기 전까지 대기해야 하므로 프로그램이 느려지는 원인이 될 수 있다.
비동기는 작업이 병렬적으로 실행되기 때문에 작업을 처리할 때 블로킹이 발생하지 않는다.
따라서 다른 작업을 수행하면서도 작업을 처리할 수 있어서, 프로그램이 더욱 빠르게 동작할 수 있다.
라이브러리
request와 BeautifulSoup은 정적 페이지를 스크래핑하는 데 주로 사용되는 라이브러리
request를 사용하여 HTTP 요청을 보내고, BeautifulSoup을 사용하여 HTML 문서를 파싱 하여 필요한 정보를 추출한다.
Selenium은 동적 페이지를 스크래핑하는 데 주로 사용되는 라이브러리
Selenium은 브라우저를 모방하여 동적으로 로딩되는 웹 페이지를 스크래핑할 수 있다.
Selenium을 사용하여 웹 페이지를 제어하고, 페이지 요소를 검색하고, 페이지 상호작용을 시뮬레이트하여 웹 페이지에서 필요한 정보를 추출할 수 있다.
Scrapy는 대규모 크롤링을 수행할 때 주로 사용되는 프레임워크
Scrapy는 비동기 처리 방식을 사용하여 빠른 크롤링을 지원하며, 데이터 추출, 데이터 처리, 데이터 저장 등의 작업을 효율적으로 처리할 수 있다.
Scrapy를 사용하면 크롤링한 데이터를 다양한 형식으로 출력하거나, 데이터베이스에 저장할 수 있다.
'Database & Data > 데이터 분석' 카테고리의 다른 글
데이터 크롤하고 분석(Jupyter Lab) - 6 (0) | 2023.04.20 |
---|---|
데이터 크롤하고 분석(Seleniuum) - 5 (0) | 2023.04.20 |
데이터 크롤하고 분석(BeautifulSoup) - 3 (0) | 2023.04.19 |
데이터 크롤하고 분석(Web Scraping 기초) - 2 (0) | 2023.04.18 |
데이터 크롤하고 분석(Web 기본 구조) - 1 (0) | 2023.04.17 |