'데이터 사이언스 입문' 5.데이터만들기

인덱스·2023년 1월 6일
0

codeit

목록 보기
13/17
post-thumbnail

*2021. 7. 13. 23:45 에 작성한 글

알듯 말듯


데이터를 만드는 방법

ex) ZARA 데이터 활용의 결과

  • 디자인부터 매장 입고까지의 시간 단축

  • 효율적인 재고관리

  • 구글이나 페이스북같은 IT회사 말고도 패션 회사인 ZARA에서 데이터 적극 활용

  • 옷이 부착된 칩으로 어떤 종류의 옷을 많이 입어 보는지 피팅룸 방문 횟수 데이터 활용은 신기..

데이터를 분석하기 전에 우선 해야할 일은

데이터를 모으는 것!

데이터 관련 사이트

국내

해외

*데이터에도 저작권 있음! 확인 잘 하자

센서(Sensor)
: 물리적인 현상을 감지해서 전기 신호로 변환해 주는 장치

센서로 데이터를 모을 수 있다!

ex) 아두이노(Arduino), 라즈베리 파이(Raspberry Pi) 등을 활용

웹에서 모으기

인터넷은 가장 빠르게 데이터가 쌓이는 곳!

데이터 수집

  • 웹 스크레이핑(Web Scraping)
    : 하나의 특정 웹페이지에서 원하는 정보를 가져오는 것

  • 웹 크롤링(Web Crawling)
    : 자동으로 여러 웹페이지에서 원하는 정보를 가져오는 것

웹 페이지 가져오기

HTML/CSS

  • 웹 크롤링과 웹 스크레이핑의 핵심 기술. 기본적인 데이터 수집을 넘어, 자동화 봇이나 복잡한 사이트의 크롤링 등 고급 응용을 할 수 있는 전문가 수준을 원한다면, 반드시 능숙하게 다뤄야 함.

HTML
: 태그이름&속성(attribute)로 구성

DOTYPE 선언

  • 가장 먼저 <!DOTYPE> 선언
  • <!DOCTYPE html>

title 태그

  • 페이지의 제목, 브라우저의 탭이나 방문 기록에 나와 있는 바로 그 제목
  • <title>Sample Website</title>

h1~h6 태그

  • 가장 중요한 머리말 <h1>(heading 1)부터 <h6>(heading 6)까지
<h1>머리말 1</h1>
<h2>머리말 2</h2>
<h3>머리말 3</h3>
<h4>머리말 4</h4>
<h5>머리말 5</h5>
<h6>머리말 6</h6>

p태그

  • 보통 문단은 (paragraph) 태그 안에
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
<p>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
<p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>

+https://www.w3schools.com/tags/ref_byfunc.asp

서버(Server) : 서비스를 제공하는 쪽

클라이언트(Client) : 서비스를 제공 받는 쪽

파이썬으로 서버에 요청 보내기

requests 모듈 사용
ex) HTML 코드(response의 text) 출력

import requests

response = requests.get("https://")
rating_page = response.text

print(rating_page)

웹사이트 주소 이해하기

필요한 데이터 골라내기

웹 페이지 스타일링 원리

  • CSS - HTML 태그에 색, 폰트, 크기, 여백 등을 설정할 수 있다.

  • HTML 태그를 선택하는 코드 & 스타일을 지정하는 코드

li {
  color: blue;
  font-size: 20px;
}
  1. HTML 태그를 선택하는 코드
    : li, 모든 <li> 태그를 대상으로 스타일을 적용하라.
    *CSS 선택자(CSS Selector) - 스타일 적용의 범위를 정하는 코드 (웹 스크레이핑에 매우 중요!)

  2. 스타일을 지정하는 코드
    첫 줄 color: blue;은 색상을 파란색(blue)으로 바꾸라는 의미
    두 번째 줄 font-size: 20px;은 글자 크기를 20px로 하라는 의미

첫 번째 CSS 선택자 : 태그 이름

  • CSS 선택자로 '태그의 이름'을 쓰면, 그 태그 모두에 스타일이 입혀진다.

두 번째 CSS 선택자 : 아이디(id)

  • 모든 태그가 아닌, 단 하나의 태그에만 스타일을 입히고 싶다면?

  • '아이디(id)' 상징 기호 : #

  • 아이디를 CSS 선택자로 활용하면, 그 아이디를 가진 태그에만 스타일이 입혀진다.

세 번째 CSS 선택자 : 클래스(class)

  • 여러 HTML 태그에 공통으로 적용 가능

  • '클래스(class)' 상깅 기호 : .

  • 하나의 태그는 한 개의 아이디만 가질 수 있지만 클래스는 여러 개 가질 수 있다

  • 클래스 이름 사이에 공백을 추가하면 된다.

네 번째 CSS 선택자 : 속성(attribute)

  • 아이디와 클래스 외의 속성도 CSS 선택자로 사용할 수 있다.

  • alt
    : 이미지가 로딩되지 않을 경우를 대비해서, 이 이미지가 어떤 이미지인지 텍스트로 알려주는 역할
    속성 이름과 속성 값을 CSS 선택자로 활용 가능

  • [name="value"]

  • 기본적으로 CSS 선택자는 HTML 태그의 스타일을 지정하기 위해 사용

  • 하지만 추출할 데이터의 위치를 지정할 때도 활용 가능

  • 웹 페이지의 원리를 역이용해서 데이터 추출에!

파싱(Parsing)
: 문자의 구조를 분석해서 원하는 정보를 얻어내는 것
*파이썬에서는 Beautiful Soup 이라는 툴로 HTML을 파싱
(파이썬에서 여러줄의 텍스트를 """와 """사이에 두면, 하나의 문자열로 인식)

#HTML 코드 받아오기
import requests
from bs4 import BeautifulSoup

# HTML 코드 받아오기
response = requests.get("https://")

# BeautifulSoup 타입으로 변환
soup = BeautifulSoup(response.text, 'html.parser')

# 결과 출력
print(soup)

CSS 선택자 정리하기

  1. 태그 이름
    : 특정 태그 전체를 선택하려면 태그 이름을 사용

    CSS 선택자의미
    il모든 il 태그
    p모든 p 태그
  2. 아이디
    : 특정 아디이의 태그를 선택하려면 아이디 앞에 #

    CSS 선택자의미
    #coffee아이디가 coffee인 태그
    #tea-leaf아이디가 tea-leaf인 태그
  3. 클래스
    : 특정 클래스의 태그를 선택하려면, 클래스 앞에 .

    CSS 선택자의미
    .favorite클래스가 favorite인 태그
    .reverse클래스가 reverse인 태그
  4. 속성
    : 속성의 이름과 값을 태그를 선택하려면, [name="value"]

    CSS 선택자의미
    [alt="green-tea"]alt 속성의 값이 "green-tea"인 태그
    [href="https://www.codeit.kr/"]href 속성의 값이 "https://www.codeit.kr/"인 태그

CSS 선택자 조합해서 사용하기

  1. OR 연산
    : 쉼표(,), 두 CSS 선택자 중 하나라도 해당되면 선택

    CSS 선택자의미
    #login, .left아이디가 login이거나 클래스가 left인 태그
    p, i모든 p 태그와 모든 i태그
  2. AND 연산
    : 두 CSS 선택자를 붙여쓰면, 두 조건에 모두 해당하는 요소만 선택

    CSS 선택자의미
    .favorite.privatefavorite 클래스와 private 클래스를 모두 가진 태그
    p.favoritefavorite 클래스를 가진 p태그
  3. 중첩된 요소
    : 띄어쓰기로 중첩 표현 가능
    중첩된 태그를 선택하려면, 두 CSS 선택자를 띄어쓰면 된다.
    첫 번째 CSS 선택자로 선택된 태그 내부에서, 두 번째 CSS 선택자를 찾는다.

    CSS 선택자의미
    .favorite .privatefavorite 클래스를 가진 태그에 중첩된, private 클래스를 가진 태그
    p .favoritep 태그 아래에 중첩된, f
    avorite 클래스를 가진 태그

DataFrame 설계하기
1. 하나의 레코드에 대한 설계
2. 파싱하기
3. DataFrame 형태로 만들기


배울수록 더 배워야겠다는 생각이 든다...
아직 부족한 게 많으니까.. 일단 다음 단계로 간다!

코드잇 출석체크는 매일 새로 만들어지는 게시글에 댓글을 다는 방식으로 진행되는데
종종 게시글 제목들에 힘을 얻곤 한다.

성공은 꿈을 실현하기 위해 항상 깨어있는 사람을 택한다.

사람은 스스로 믿는 대로 된다.

성공의 크기는 열망의 깊이에 좌우된다.

모든 일은 쉽기 전에는 어려운 법이다.

꿈을 계속 간직하고 있으면 반드시 실현할 때가 온다.

어떤 일을 하기에 앞서 스스로 그 일에 대한 기대를 가져야 한다.

사람은 생생하게 꿈꾸는 그대로 된다.

당신이 가진 것중 가장 위대한 것은 바로 당신 앞에 있는 24시간이다.

한 때는 불가능하다고 생각한 것이 결국에는 가능한 것이 된다.

생각보다는 행동이 먼저 이뤄져야 하며 거기에서 답을 찾아낼 수 있다.

자신이 할 수 있다고 생각하는 것보다 매일 조금씩 더 하라.

나만이 내 인생을 바꿀 수 있다.

작은 기회로부터 종종 위대한 업적이 시작된다.

인생은 오늘의 나 안에 있고, 내일은 스스로 만드는 것이다.

성공은 꿈꾸고, 믿고, 대담해지고, 실천하는 데서 오는 것이다.

무슨 일이든 할 수 있다고 생각하는 사람이 해내는 법이다.

성공은 매일 반복한 작은 노력들의 합이다.

어떤 일을 하기에 앞서 스스로 그 일에 대한 기대를 가져야 한다.

인간은 자신이 원하는 만큼 위대해질 수 있다.

기회는 일어나는 것이 아니라 만들어내는 것이다.

매일매일 공부한 지 한 달이 다 되어 가는데
마음을 채우는 건 결국 글이라 나중에 끝나면 정리 한 번 해야겠다.
'데이터 사이언스 입문' 5.데이터만들기|작성자 Index

profile
헤맨 만큼 내 땅이 된다

0개의 댓글