5/13 Today I Learned

boks·2024년 5월 13일
post-thumbnail

📖 학습한 내용

  • 모듈 - 명령줄 인수를 파싱
  • API 활용
  • 크롤링

📖 핵심내용

📌 모듈

시스템 관련 작업을 수행

  • sys
  • argparse

📌 API 활용

AIP란?

  • 데이터베이스에 필터 조건 및 매개변수를 전달하여 정보를 주는 역할

순서

  • 받은 키 로드
with open('../api_key/api_key.json', 'r') as f:
    api_key = json.load(f)['api_key'] #열은 파일을로드하고 제이슨으로 파싱
  • API 가이드를 보고 원하는 데이터 뽑을 수 있는 url 생성

  • requests로 데이터 받기

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파일인건 나중에 눈치채서 그냥 다 날렸다. 너무 답답하고 화가났지만, 쉽게 어디서든 배울 수 있는 내용이라하니 다시 공부해야겠다. 혼자 공부하는데 계속 에러가나는데 뭐가 잘못된지 모르겠다. 한참 끙끙대며 대략적인 프로세스만 공부했다. 나중에 한번 더 해야하는 부분이다.
    배우기 쉽지만, 실전에서는 아무도 도와주지 않고 혼자 반드시 해야하는 부분이라 생각한다. 개념을 알고 몇번 실전으로 익히면 될것 같다.
profile
설계엔지니어의 변신

0개의 댓글