p. 150의 확인 문제 1번 풀고 인증하기
p. 137 ~ 138 손코딩 실습으로 원하는 도서의 페이지 수를 추출하고 화면 캡처하기
API (Application Programming Interface)
HTTP (Hyper Text Transfer Protocol)
내 컴퓨터
)웹사이트
)HTML (Hypertext Markup Language)
JSON (JavaScript Object Notation)
{"name":"혼자 공부하는 데이터 분석}
type()
함수
json.dumps()
함수
import json
d = {"name":"혼자 공부하는 데이터 분석}
d_str = json.dumps(d, ensure_ascii=False)
ensure_ascii = False
d
에 포함된 한글을 그대로 출력하기 하기 위해 사용json.loads()
함수
d2 = json.loads(d_str)
read_json()
함수
Pandas
에서 JSON 문자열 → 데이터프레임 변환import pandas as pd
d4 = json.loads(d4_str)
pd.read_json(d4_str)
pd.DataFrame(d4)
to_json()
함수
Pandas
에서 데이터프레임 → JSON 파일로 저장force_ascii=False
XML 파일 (eXtensible Markup Language)
element
)들이 계층 구조 이루며 정보 표현parent element
)child element
)﹦
)<
시작, >
종료-
, .
으로 시작 ❌)fromstring
함수
import xml.etree.ElementTree as et
book = et.fromstring(x_str)
findtext()
함수
# 메서드 내 찾으려는 태그 이름 입력
name = book.findtext('name')
findall()
함수 + for
문
# 메서드 내 찾으려는 태그 이름 입력
for book in books.findall('book'):
name = book.findtext('name')
author = book.findtext('author')
year = book.findtext('year')
read_xml()
함수
pd.read_xml(xml)
API 호출 URL
API 사용 위해 필요
http 시작 → HTTP 프로토콜 사용 의미
조회 방법
?
문자로 연결 ➡️ HTTP GET 방식=
로 연결&
문자로 연결requests 패키지
파이썬에서 URL 호출해 데이터 받는 방법
import requests
# HTTP GET 방식으로 파라미터 값 전달, Response 클래스 객체 반환
r = requests.get(url)
# JSON 문자열을 파이썬 객체로 변환
data = r.json()
# 보기 좋은 형태로 만들기
...
웹 스크래핑 (web scraping) / 웹 크롤링 (web crawling)
웹 스크래핑 시 주의점
robots.txt
에서 확인loc()
함수
슬라이스 연산자(:
) 사용 가능
books_df.loc[[0,1], ['bookname','authors']]
books_df.loc[0:1, ['bookname','authors']]
iloc()
함수
books_df.loc[[0,1], [2,3]]
뷰티플 수프 (Beautiful Soup)
HTML에서 데이터 추출 시 사용
BeautifulSoup()
from bs4 import BeautifulSoup
# 클래스 객체 생성
soup = BeautifulSoup(r.text, 'html.parser')
# 태그 위치 찾기
prd_link = soup.find('a', attrs={'class':'gd_name'})
# 태그 모두 찾기
prd_tr_list = prd_detail.find_all('tr')
find()
함수
soup
객체에 사용attrs
findall()
함수
get_text()
함수
apply()
함수
axis
0
지정 → 열에 적용1
지정 → 행에 적용merge()
함수
Pandas
에서 2개의 데이터 프레임 합치거나 데이터프레임 + 시리스 합칠 때 사용left_index, right_index = True
→ 두 객체 인덱스 기준 합침