📖 학습한 내용
- 모듈 - 명령줄 인수를 파싱
- API 활용
- 크롤링
📖 핵심내용
📌 모듈
시스템 관련 작업을 수행
📌 API 활용
AIP란?
- 데이터베이스에 필터 조건 및 매개변수를 전달하여 정보를 주는 역할
순서
with open('../api_key/api_key.json', 'r') as f:
api_key = json.load(f)['api_key'] #열은 파일을로드하고 제이슨으로 파싱
r = requests.get(url) # 유알엘 정보를 읽어온다
with open('../sample.xml', 'w', encoding='utf-8') as f: # xml파일 생성
f.write(r.text)
xml
- xml 내장 모듈을 사용하는 방법
- \ 으로 끝난다.
- 시작태그에는 느낌표가 있지만 종료 태그에는 느낌표가 없다
import xml.etree.ElementTree as ET
root = ET.fromstring(r.text)
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
https://docs.python.org/ko/3/library/xml.etree.elementtree.html#module-xml.etree.ElementTree
JSON
- JSON 데이터는 이름과 값의 쌍으로 이루어 짐
- JSON 데이터는 쉼표(,)로 나열
- 객체(object)는 중괄호({})로 둘러쌓아 표현
- 배열(array)은 대괄호([])로 둘러쌓아 표현
- 결국 딕셔너리 형태이므로, 키를 타고 들어가서 원하는 벨류를 뽑아낼 수 있다.
순서
- API 가이드를 보고 원하는 데이터 뽑을 수 있는 url 생성
- requests로 데이터 받기
- 딕셔너리로 변환
- 원하는 데이터 추출
📌 크롤링
- 크롬으로 타겟사이트 들어가서 원하는 정보 가져오기
- 검사 기능을 이용하여 원하는 부분의 경로를 복사한다.
순서
- 원하는 페이지 url 가져오기
- requests.get()함수로 url 연결
- BeautifulSoup으로 html 언어 패싱하기
soup = BeautifulSoup(r.text, 'html.parser')
product_url = soup.find('a', attrs={'class':'gd_name'})['href']
📖 이후 학습 계획
- numpy 튜토리얼
- pandas 튜토리얼
- openCV 튜토리얼
📖 기타
- 수업에서 한번 놓쳤는데 혼자 한번 해보겠다고 잠시 끙끙 된 사이 수업진도가 멀리 나가버렸다. 뭘 안되는데 너무나 많이 나가버려서 지금 뭘하고있는지도 못따라가서 한참 못알아들었다. 결국 .xml 파일을 못만들어서 수업내 아무것도 못했다. 강사님이 공유해준게 xml파일인건 나중에 눈치채서 그냥 다 날렸다. 너무 답답하고 화가났지만, 쉽게 어디서든 배울 수 있는 내용이라하니 다시 공부해야겠다. 혼자 공부하는데 계속 에러가나는데 뭐가 잘못된지 모르겠다. 한참 끙끙대며 대략적인 프로세스만 공부했다. 나중에 한번 더 해야하는 부분이다.
배우기 쉽지만, 실전에서는 아무도 도와주지 않고 혼자 반드시 해야하는 부분이라 생각한다. 개념을 알고 몇번 실전으로 익히면 될것 같다.