Python 심화 같이 풀어도 어렵다

emily.song·2022년 2월 24일

코드라이언과 함께하는 4일

3일 연속 파이썬이랑 함께 했다. 오늘의 수업은 파이썬 심화이면서 같이 푸는 파이썬인데, 같이 풀어도 어려워서 눈이 핑핑. 완강 후 오늘 배운거 어려웠을 거라는 말 한 마디가 어려운게 맞구나 싶었다. 초심자가 코딩에 마음을 돌리는 순간은 같이 풀어도 혼자 못 푸는 상태인 걸 알게 된 날 아닐까. 오늘은 탈출하고 싶은 마음이 골백번은 더 들었다. 애잔하다. 나이 먹고 배우려니 슬프다는 게 이런 느낌인가 싶기도 하고. 지금이라도 배워서 한편으로는 다행이다 싶었다. 어쨌든 논문을 쓰다가 옆에 다른 선생님이 '웹 크롤링' 했다는 이야기에 부러웠었는데, 이제는 나도 시도는 할 수 있겠다 싶어 약간은 뿌듯하다.

어찌되었든 오늘은 어려운 게 많아서 강의에서 봤던 코드를 읽는 것부터 해야겠다. 중간중간 놓치는 것이 많은 기분이 든 날이라, 내일 모레에는 이 강의 다시 봐야겠다.

TIL(Today I Learned)😀

  1. 웹 크롤링
    웹 크롤링(Web crawling)이란 웹 크롤러(Web crawler)를 사용하여 정보를 수집하는 걸 의미한다. 즉, 웹크롤러는 조직적, 자동화된 방법으로 월드 와이드 웹을 탐색하는 컴퓨터 프로그램이라고 위키백과에 나와있다. 사용을 위해서는 컴퓨터 상에 필요한 기능을 설치해야하는데, pip install requests 를 명령어로 활용하여 설치 진행한다. 강의를 위해서는 이미 강의창에 설치가 되어 있어, 집에서 혼자할 땐 어떻게 하나 싶어 추가로 확인했다.
    윈도우 명령어 프롬프트(cmd)를 실행하고 파이썬의 하위 폴더 scripts 에서 pip 확인하여 진행한다고 한다. 인터넷에 생각보다 많이 나와있어서 읽는 재미가 쏠쏠하다. 역시 이론파. 코드가 다양한데 뭐가 실용적이고 어떤 페이지를 사용하면 안되는지 정확하게 나온 얘기가 없다. 강의 영상에는 무분별한 수집을 해서는 안된다고 하는데, 정확히 어떤 내용이나 웹페이지가 수집 불가인지 어떻게 확인해야할까? 보안 프로그램도 있나? 있을 것 같긴한데 모르겠다. "robots.txt" 이거다. 이해하기로는 권고안이면서, 어쨌든 웹 상에서 접근을 차단할 수 없기에 '퍼가지마세요' 이런 느낌 같다. 근데 알려두면 더 퍼가고 싶지 않을까 싶기도 하다. 짧막하게 나와 더 알아보고 싶었다.

    벨로그의 위대함인가. 검색하다 벨로그 글이 하나 있어서 읽었는데, 궁금했던 점의 맹점을 집고 있었다. 일단 인덱스를 위해 링크 저장. 계속 업데이트되고 있는 것 같아서 틈날 때 또 읽어 봐야겠다.

    https://velog.io/@mowinckel/%EC%9B%B9-%ED%81%AC%EB%A1%A4%EB%A7%81-I

  2. bs4 모듈 내에 있는 beautifulSuop 이라는 기능을 활용. 기능명이 너무나 미학적이다. 웹페이지들을 거대한 정보의 스프로 본 걸까.

    https://www.crummy.com/software/BeautifulSoup/

    활용도가 엄청난 것 같다. 무기상을 추적한다고요? 코로나도 추적하네. 선거 결과도 보고 재밌는 것 같다. 이 분야 하나만 파도 끝이 없을 것 같다.

전체 코드에서 이해한 부분만 나와서 다행이다. 이정도는 맞춰야지.

  1. json
    json이 뭔가 했다. 검색해보고 Java Script Object Notation, JSON 이라니! 그래서 커리큘럼에 JAVA가 있었구나. 그럼 HTML/CSS, JAVA, PYTHON 순으로 해주시지! (으아니!, 수업 마음대로 들은 내 잘못이지) 그래도 2일에 파이썬이 있어서 몸이 파이썬으로 근질근질 옮겨진 건 어쩔 수 없었다. 서버-클라이언트 간 데이터를 주고 받을 때 사용하는 데이터 포멧. 다른 포멧도 있는 것 같은데 JASON 이 데이터 글자가 작은 편이라 주로 사용되는 것 같다. 웹적합도가 높다는 이야기도 있었다. 역시 실용적인 자만 살아남는 적자생존.
    chulsu = {
       "신체 정보":{
           "키":170,
           "몸무게":65
       },
       "좋아하는 음식":[
           {
               "순위":1,
               "이름":"탕수육",
               "맛":"달콤함",
               "분류":"중식"
           },
           {
               "순위":2,
               "이름":"콘치즈",
               "맛":"고소함",
               "분류":"양식"
           }
       ],
       "소속":"코드라이언",
       "상세":{
           "성별":"남자",
           "학교":"코라대학교",
           "국적":"한국"
       }
    }

#chulsu의 소속을 출력해주세요.
print(chulsu["소속"])

#chulsu가 두 번째로 좋아하는 음식의 이름을 출력해주세요.
print(chulsu["좋아하는 음식"][1]["이름"])

#chulsu의 성별을 출력해주세요.
print(chulsu["상세"]["성별"])

#chulsu의 키를 출력해주세요.
print(chulsu["신체정보"]["키"])


눈에 익숙하지 않아서 그런가, 정보를 빼는 변수? 아이템? 명칭은 정확하게 썼는데, [] 사용을 자꾸 혼동한다. ()만 계속써서 주의해야할 것 같다. 그리고 [1] 이건 두번째 위치했다는 의미라구!!! 관습적인게 무섭다고 자꾸만 [2]로 쓰려고 한다. 주의하고 또 주의하자. 파이썬에서 특정 자리수를 뺄 땐, 0부터 시작이라는 것을! 실제 강의에서 나온 코드는 아직 이해하지 못했다. 그냥 다시 들어야겠다.
그래도 API라는 개념을 알게 된 것. API key 값이 있고 노출되지 않게 주의해야하는 건 숙지했다.


아, JSON 실행을 위해서는 요청하는 문구와 쌍으로 함께. 상단에 입력시킬 것. 

import requests
import json



4. 번역기
다른 건 모르겠는데 이게 정말 신기했다. 뭔가 나도 만드는 것 같다는 느낌을 주니 의욕적이랄까. 일단 강의 화면을 긁어왔다. 질문지 만드는 건 이제 익숙하다. 번역 기능을 사용하려면 상단에 구글번역 기능을 가져오도록 작성해주고 시작하기. 퀴즈에서도 result = translator.translate(sentence, dest) 나왔음. 

print() 순서가 약간 혼돈되는데 원문 ":" 문자열, 문장 이렇게 였던거 같다. 복습하자. 구조 읽다보면 이렇게 생겼군이라는 건 알겠는데 막상 나보고 혼자 만들어보세요하면 울지도 모르겠다. 

from googletrans import Translator

translator = Translator()

sentence = "안녕하세요 코드라이언입니다."

sentence = input("번역을 원하는 문장을 입력해주세요 : ")
dest = input("어떤 언어로 번역을 원하시나요?")

result = translator.translate(sentence,dest)
detected = translator.detect(sentence)

print("===========출 력 결 과===========")
print(detected.lang,":",sentence)
print(result.dest,":",result.text)
print("=================================")


5. 메일 발송 

![](https://velog.velcdn.com/images%2Fnoche12%2Fpost%2F153c16a6-d359-488f-9093-33420551805d%2Fimage.png)

open() - codelion.png / rb

파일을 읽어서 출력해보세요. read()



profile
성실하게 한 발, 센스있는 방향성

0개의 댓글