- API 사용하기
- 웹스크래핑
: 두 프로그램이 서로 대화하기 위한 방법을 정의한 것
: 인터넷에서 웹 페이지를 전송하는 기본 통신 방법
: 웹 브라우저가 화면에 표시할 수 있는 문서의 한 종류이자 웹 페이지를 위한 표준 언어
<div>
와 같은 표시csv
,JSON
,XML
파일을 사용 -> HTML은 구조가 비교적 복잡하기 때문: JavaScript Object Notation
{}
를 사용:
으로 연결d = {"name" : "혼자 공부하는 데이터 분석}
print(d['name'])
json package 임포트 코드
import json
파이썬 객체를 JSON 형식으로 변형
d_str = json.dumps(d, ensure_ascill = False)
print(d_str)
파이썬 객체를 JSON 형식으로 변형
d2 = json.loads(d_str)
print(d2['name'])
d4_str = """
[
{"name" : "혼자 공부하는 데이터 분석}, "author" : "박혜선", "year" : 2022},
{"name" : "혼자 공부하는 머신러닝}, "author" : "박혜선", "year" : 2020 }
]
"""
d4 = json.loads(d4_str)
print(d4[0]['name'])
import pandas as pd
pd.read_json(d4_str)
XML : eXtensible Markup Language
x_str = """
<book>
<name>혼자 공부하는 데이터 분석</name>
<author>박해선</author>
<year>2022</year>
</book>
"""
import xml.etree.ElementTree as et
book = et.fromstring(x_str)
book_childs = list(book)
print(book_childs)
name, author, year = book_childs
print(name.text)
print(author.text)
print(year.text)
자동으로 자식 엘리먼트를 탐색하여 텍스트를 반환
name = book.findtext('name')
author = book.findtext('author')
year = book.findtext('year')
print(name)
print(author)
print(year)
동일한 이름을 가진 여러 개의 자식 엘리먼트를 찾을 때는 : findall()
매서드와 for문
함께 사용
for book in books.findall('book'):
name = book.findtext('name')
author = book.findtext('author')
year = book.findtext('year')
print(name)
print(author)
print(year)
print()
import requests
# 인증키를 발급받아 문자열 맨 끝에 추가해 주세요.
url = "http://data4library.kr/api/loanItemSrch?format=json&startDt=2021-04-01&endDt=2021-04-30&age=20&authKey=c01ec15e4574f74ee45cba2601bad15b82971e606e3b0740977ee4b363ce2fe2"
r = requests.get(url)
data = r.json()
print(data)
data['response']['docs']
books = []
for d in data['response']['docs']:
books.append(d['doc'])
books = [d['doc'] for d in data['response']['docs']]
books
books_df = pd.DataFrame(books)
books_df