Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

EYaTToCoding

웹스크래핑 본문

카테고리 없음

웹스크래핑

야토. 2024. 10. 30. 05:35

웹스크래핑이란?

웹스크래핑은 웹사이트의 데이터를 자동으로 긁어오는 기술로, 네이버나 구글 같은 웹사이트에서 직접 정보를 복사하고 붙여넣기 하는 대신, 코드로 데이터를 한 번에 긁어오는 것을 말한다. 주로 Python이나 JavaScript 같은 프로그래밍 언어를 많이 사용한다. 스크래핑을 잘 활용하면, 최신 뉴스, 상품 가격 정보, 영화 리뷰 같은 데이터를 손쉽게 수집할 수 있다.

 

웹스크래핑의 두 가지 유형은 바로 정적과 동적 웹스크래핑이다. 이 둘의 차이를 알면 원하는 데이터를 더 쉽게 얻을 수 있다.

 

정적 웹스크래핑 (Static Web Scraping)

정적 웹스크래핑은 서버에서 웹페이지를 요청할 때 완성된 HTML 코드를 바로 받는 방식이다. 우리가 웹사이트를 열었을 때 모든 내용이 한 번에 표시되는 사이트는 대부분 정적 페이지다. 이런 페이지는 데이터를 가져오기 쉬운 편이다. 왜냐하면 HTML 코드에 내가 필요한 데이터가 그대로 들어있기 때문이다.

 

예를 들어, 뉴스 사이트에서 기사 목록을 가져온다고 해보자. HTML 코드에서 각 기사 제목이 <h2> 태그로 되어 있다면, 그 태그만 골라서 긁어오면 된다. 파이썬에서는 BeautifulSoup이라는 라이브러리를 주로 사용하는데, HTML을 쉽게 파싱할 수 있도록 도와준다.

 

정적페이지의 요청과 응답
정적페이지의 요청과 응답(출처:https://velog.io/@dyunge_100/)

 

동적 웹스크래핑 (Dynamic Web Scraping)

동적 웹스크래핑은 JavaScript로 추가로 로드되는 콘텐츠를 긁어오는 방식이다. 요즘 웹사이트들은 데이터 일부를 서버에서 받아온 다음, 나머지 데이터를 JavaScript로 로딩하는 경우가 많다. 이런 페이지에서는 HTML 코드를 확인해도 필요한 정보가 안 보일 수 있다. 그래서 더 똑똑한 방법이 필요하다.

 

예를 들어, 온라인 쇼핑몰에서 상품 리스트가 스크롤을 내릴 때마다 나타나는 걸 본 적 있을것이다. 이런 페이지는 동적으로 로드되는 것이다. 스크롤을 내릴 때마다 JavaScript가 상품 정보를 서버에 요청해서 가져와서 추가하는 식이다.

동적 스크래핑을 할 때는 보통 Selenium이라는 라이브러리를 많이 사용한다. Selenium은 가상 브라우저를 띄워서, 우리가 브라우저에서 보는 그대로 JavaScript가 로딩된 후의 페이지를 보여준다. 그래서 JavaScript로 추가된 데이터도 긁어올 수 있다.

 

동적페이지의 요청과 응답
동적페이지의 요청과 응답(출처:https://velog.io/@dyunge_100/)

 

정적과 동적 스크래핑 비교

구분 정적 웹스크래핑 동적 웹스크래핑
데이터접근성 HTML에서 직접 데이터 추출 가능 JavaScript로 로드된 데이터까지 접근 가능
속도 빠르다 느리다
주요 도구 BeautifulSoup, lxml Selenium
사용 자원 적다 많다