[데이터 엔지니어링] 웹 스크레이핑

2022. 4. 5. 17:40AI/Codestates

728x90
반응형

HTML이란?

- HyperText Markup Language 의 약자로 웹에서 표시할 때 사용

- HTML이 '언어다', '언어가 아니다' 에 대한 의견이 갈리지만, MDN에 의하면 프로그래밍 언어는 아님!!!

- MDN에 의하면 웹 페이지가 어떻게 구성이 되어 있어야 하는지 알려주는 마크업 언어라고 소개 되어 있음

- 간단하게 말해 웹 페이지에서 보여지는 것들이 어떻게 어떤 방식으로 보여져야 하는지 알려주는 마크업 언어

HTML Element

- HTML 에서는 요소 ( Element ) 라는 것들이 존재함 예를 들어 head, body, div, li 등등 다양함

- 기본적으로 HTML에서는 각 엘레멘트들은 태그를 통해 표현이 됨

CSS 란?

- HTML 이 웹 페이지가 어떻게 구성되는지 알려주는 마크업 언어라면 CSS는 웹 페이지 문서가 어떻게 표현되는지 알려주는 스타일시트 언어

- Cascading Style Sheets 의 약자로 알 수 있듯이 CSS 는 HTML이 표현한 문서가 어떻게 표현이 되는지 알려줌

- HTML 에서도 태그 내에 스타일에 대해 알려줄 수 있지만 스타일에 관한 내용이 많을수록 HTML이 복잡해지고 편의성도 떨어지기 때문에 이렇게 분리해서 사용

CSS Selector

- 셀렉터는 특정 요소를 선택할 수 있는 방법

- Type Selector : CSS 타입에 따라서 선택할 수 있음

- Class Selector : 클래스에 따라 선택할 수 있음

- Id Selector : id에 따라 선택할 수 있음

CSS 클래스 

- 클래스는 어떤 특정 요소들의 스타일을 정하고 싶을 때에 사용이 됨

- 동시에 여러 개의 요소들에 대한 스타일을 정할 때에는 보통 클래스를 지정해서 상속을 받도록 정함

- CSS 에서는 '.' 기호를 통해서 클래스를 정의할 수 있음

CSS ID

- 클래스와 비슷하게 사용할 수 있는 것이 ID

- CSS 에서는 '#' 기호를 통해서 스타일을 정할 수 있음

DOM 이란?

- DOM ( Document Object Model ) 은 웹 페이지에서 매우 중요한 역할을 하고 문서 객체 모델이라고도 불림

- MDN 에서 정의하는 것처럼 DOM 은 HTML, XML 등 문서의 프로그래밍 인터페이스

- 다시 말해 프로그래밍 언어를 통해서 HTML 문서 등에 접근할 수 있도록 해줌

- DOM은 객체로 표현을 하는데 이 때 Object 란 자바스크립트에서 사용되는 데이터 구조 중 하나

- DOM을 통해서 프로그래밍 언어에서 사용할 수 있는 데이터 구조 형태로 작업을 수행할 수 있어 크롤링 등 웹 페이지와 작업할 때 매우 중요한 개념 중 하나

DOM 메소드

- DOM 다양한 기능들

  • getElementsbyTagName: 태그 이름으로 문서의 요소들을 리턴합니다.
  • getElementById: 'id' 가 일치하는 요소들을 리턴합니다.
  • getElementsByClassName: '클래스' 가 일치하는 요소들을 리턴합니다.
  • querySelector: 셀렉터(들)과 일치하는 요소를 리턴합니다.
  • querySelectorAll: 셀렉터(들)과 일치하는 모든 요소들을 리턴합니다.

웹 스크레이핑/크롤링 이란?

- 웹 크롤링이란 웹으로 돌아다니면서 정보를 수집하는 행위

- 크롤링은 번역을 하자면 '기어다니다'라는 뜻을 가지고 있음.

- 웹 스크레이핑은 자동화에 초점이 맞춰져 있고 알아서 돌아가게 함

- 크롤링도 자동화를 사용하지만 스크레이핑은 특정 정보를 가져오는 것이 목적이라면 크롤링은 주로 인터넷에 있는 사이트들을 인덱싱하는 목적을 두고 있음

requests 라이브러리

- 웹 스크레이핑의 가장 기초는 웹과 소통을 하는 것

- HTTP 요청을 간단한 메소드를 통해 실행할 수 있도록 짜여졌다는 것이 가장 큰 장점 중 하나

BeautifulSoup 라이브러리

- 웹 스크레이핑에서는 서버에 요청을 보내고 응답을 받는 것이 시작

- BeautifukSoup 라이브러리는 받아온 HTML 파일을 파싱해서 원하는 정보를 손쉽게 찾을 수 있도록 해줌

# 네이버 영화 제일최근 영화코드 불러오기
soup, page = get_page(search_url)
sel = soup.select('.search_list_1 > li a')
movie_code = []
for ele in sel :
    if movie_title.lower() in ele.text.lower() :
        code = ele
        movie_code.append(int(code.attrs['href'].split('=')[1]))
print(max(movie_code))

 

728x90
반응형

'AI > Codestates' 카테고리의 다른 글

[데이터 엔지니어링] NoSQL  (0) 2022.04.07
[데이터 엔지니어링] API  (0) 2022.04.07
[데이터 엔지니어링] Python 활용  (0) 2022.04.04
[Day 49] Sprint Review  (0) 2022.04.04
[데이터 엔지니어링] DB API  (0) 2022.03.31