Today's Curriculum
- 데이터 수집
- api 요청: xml, json 형태로 테이터 가져오기
- json 분석하기: json 내장 모듈 (json.loads, json.dump, json.load)
- xml 분석하기: xml 내장 모듈, BeautifulSoup 모듈 - 크롤링: requests, BeautifulSoup
- 모듈
- argparse
- sys
API 요청(호출하기)
- API(Application Programming Interface): 여러 프로그램과 데이터베이스, 그리고 기능들의 상호 통신 방법을 규정하고 도와주는 매개체.
JSON 구조
- JSON은 JavaScript Object Notation의 약자로
- 데이터를 구조화된 형태로 표현하는 포맷
- 파이썬의 json 모듈은 JSON 데이터를 파싱하고 생성하는 기능을 제공하며, 데이터 교환과 저장에 널리 사용됨 - 따라서 JSON 데이터는 다음과 같은 자바스크립트 객체 표기법에 따른 구조로 구성
- JSON 데이터는 이름과 값의 쌍으로 이루어 짐
- JSON 데이터는 쉼표(,)로 나열
- 객체(object)는 중괄호({})로 둘러쌓아 표현
- 배열(array)은 대괄호([])로 둘러쌓아 표현
xml 이란?
- XML: Extensible Markup Language(XML)
- XML을 사용하면 공유 가능한 방식으로 데이터를 정의하고 저장할 수 있음
- XML은 웹 사이트, 데이터베이스 및 타사 애플리케이션과 같은 컴퓨터 시스템 간의 정보 교환을 지원
- 예를 들어, 웹 서비스에서는 XML을 사용하여 데이터를 전송하고, 구조화된 문서를 생성할 수 있음.
- 데이터베이스에서 데이터를 가져와 XML 형식으로 저장할 수 있음.
- import xml.etree.ElementTree as ET
- Python에서 ElementTree 모듈을 ET라는 닉네임으로 가져오는 것을 의미
- 이 모듈은 XML 데이터를 파싱하고 조작하는 데 사용
- ET를 통해 XML 요소를 생성하고 수정하며, XML 파일을 읽고 쓸 수 있음 - ElementTree
- ElementTree 모듈은 Python에서 XML 데이터를 파싱하고 조작하는 데 사용되는 기본적인 도구
- XML을 트리 구조로 나타내고 XML 요소를 조작하는 데 필요한 기능을 제공
- ElementTree 클래스는 XML 트리를 생성하고 조작하는 데 사용되며, Element 클래스는 XML 요소를 나타냄 - root=ET.fromstring(xml_string)
- ElementTree 모듈의 fromstring() 함수를 사용하여 XML 문자열을 파싱하여 XML 데이터를 Element 객체로 변환하는 것을 의미
- 여기서 ET는 xml.etree.ElementTree 모듈을 import한 후 사용하는 별칭(alias)이며,
- xml_string은 파싱할 XML 문자열을 나타냄.
- 파싱된 XML의 최상위 요소인 루트 요소(root element)를 root 변수에 할당하여 사용할 수 있음.
- 이렇게 파싱된 XML 데이터를 효과적으로 조작하고 검색할 수 있습니다 - fromstring()
- xml.etree.ElementTree 모듈에서 제공되며,
- XML 문자열을 직접 파싱하여 해당 문자열에서 XML을 표현하는 Element 객체로 변환함.
- 이 함수는 파싱된 tree의 root element를 반환하며, 파싱된 XML을 쉽게 조작하고 검색할 수 있도록 함. - for i, ele in enumerate(root.findall('./docs/doc')[::-1]):
for ele1 in ele.iter():
print(f'{ele1.tag:20s}|{ele1.text}')
print('-'*100)
if i>1:
break
- root.findall('./docs/doc') : XML에서 './docs/doc' 경로에 해당하는 모든 요소를 찾겠다
- liter(): 주어진 객체에 대한 반복자(iterator)를 반환. 이를 통해 객체의 요소를 하나씩 순회할 수 있음.
e.g. 리스트나 튜플과 같은 iterable한 객체를 받아 해당 객체에 대한 반복자를 반환
- from bs4 import BeautifulSoup
- Python에서 Beautiful Soup 라이브러리를 사용하기 위해 필요한 코드
- 이 코드는 Beautiful Soup 라이브러리에서 BeautifulSoup 클래스를 현재 작업 공간으로 가져오는 역할을 함
- BeautifulSoup은 HTML 및 XML 문서를 파싱하고 분석하는 데 사용되는 강력한 라이브러리로, 웹 스크래핑 및 데이터 수집 작업에 자주 사용 - for ele in soup.select('docs > doc')
- Beautiful Soup에서 CSS 선택자를 사용하여 HTML 또는 XML 문서에서 특정 요소를 선택하는 것을 의미
- 이 구문은 soup 객체에서 docs라는 태그의 자식 요소인 doc 태그들을 선택하고, 각각을 ele 변수에 할당하여 순회(iterate) 함 - data = json.loads(r.text)
- Python에서 JSON 형식의 문자열을 Python 객체로 변환하는 역직렬화(deserialization)를 수행
- 이 코드에서 r.text는 HTTP 응답의 텍스트 데이터를 나타내며,
- json.loads() 함수를 사용하여 이를 Python 객체로 변환
- 그 결 과로 변환된 객체는 data 변수에 할당 됨 - yes24에서 정보가져오기 예제
느낌점
- 하나도 모르겠다
'TIL > Python (w Numpy)' 카테고리의 다른 글
24.05.14 Numpy & Pandas (0) | 2024.05.16 |
---|---|
24.05.10 Python (0) | 2024.05.10 |
24.05.09 Python (0) | 2024.05.09 |
24.05.08 Python (0) | 2024.05.08 |
24.05.07 Python (0) | 2024.05.07 |