import requests
from bs4 import BeautifulSoup
webpage = requests.get("https://www.daangn.com/hot_articles")
soup = BeautifulSoup(webpage.content, 'html.parser')
print(soup.ul.children)
for child in soup.ul.children:
print(child.string)
내가 가진 html이 아닌 일반 사이트에서 가져오고 싶을 때, requests를 import한다.
특정 사이트의 html을 통째로 가져온다.
내부로 객체화(데이터 구조화)
pandas : 데이터를 조작할 수 있도록 정형화시켜주는 역할
cmd에 pip install pandas
openpyxl : 텍스트 데이터를 엑셀파일 형태로 만들어줌
cmd에 pip install openpyxl
import requests
from bs4 import BeautifulSoup as bs # BeautifulSoup 대신 bs라고 쓰겠다 선언
import pandas as pd
page = requests.get("https://library.gabia.com/") # 페이지 소스 가져오기
soup = bs(page.text, "html.parser") # soup = 구조화 된 데이터
elements = soup.select('div.esg-entry-content a.eg-grant-element-0')
titles = []
links = []
for index, element in enumerate(elements, 1): # enumerate : 순서를 나타내는 자료형
titles.append(element.text)
links.append(element.attrs['href'])
df = pd.DataFrame()
df['titles'] = titles # key, value 형태로 입력
df['links'] = links
df.to_excel('./data.xlsx', sheet_name='Sheet1')
requests는 한 페이지를 크롤링하지만, Selenium을 사용하면 여러페이지 크롤링도 가능하다.
의미없는 각각의 데이터들이 존재한다.
데이터를 필요에 맞게 가공을 해서 가치있는 결과를 만들어 낸 것을 정보라고 한다.
데이터가 정보의 원재료이지만 가공하지 않으면 의미가 없다.
금광을 데이터, 금을 정보라고 하자.
수많은 데이터 속에서 의미있는 정보를 찾아내는 것을 데이터마이닝이라고 한다.
데이터마이닝에 따라 적은 데이터로 정보를 많이 만들 수 있고, 많은 데이터로 정보를 못 만들 수도 있다.
언제 어디에 쓸지도 모르는 데이터를 계속 모을 수 없다
⇒ 비용문제, 메모리 기술발전과 가격하락
데이터를 활용하는 모두가 아저씨처럼 창고를 잘 활용할 수 없다.
⇒ 데이터 분석/해석의 어려움, 인공지능의 발전
빅데이터
⇒ 누가 사용하냐에 따라 데이터로 만들어 낼 수 있는 정보는 무한대
⇒ 인공지능을 활용하여 다양한 분야에 활용
⇒ 데이터 구조화
빅데이터가 우리 시대에 중요한 이유는 객관적 의사 결정을 도와준다는 점이다.
구글 - 빅데이터를 활용해 미국에 독감 유행 예측, 대선 선거 예측
질병통제예방센터보다 2주정도 더 빠르게 독감을 예측
아마존 - 추천 상품 서비스 제공, 총 매출의 1/3 이상이 이 서비스에서 발생
넷플릭스 - 하우스 오브 카드 제작 시 시청자들의 성향 분석, 넷플릭스 이용자의 85%가 하우스 오브 카드를 시청함.