Before 2020/프로젝트

Nomad Coder의 'Python으로 웹 스크래퍼 만들기' 강의정리

부루기 2020. 1. 23. 15:16
728x90
  • 강의 링크

https://academy.nomadcoders.co/courses/681401/lectures/12154590

 

#0.0 Why learn Python

Python for Absolute Beginners

academy.nomadcoders.co


  • 이걸 보게 된 이유, 이 강의 첫인상

나는 나만의 첫 프로젝트로 파이썬 웹크롤링을 사용해서 학교의 프로그램을 받아오고 정리후 내 시간표의 공강시간에 알맞는 프로그램을 넣어주는 프로그램을 만들었다.

https://happyhyunwoong.tistory.com/37?category=1086415

 

Project 1-1) 웹 크롤링을 통한 공모전 스케쥴러 만들기

>기초 파이썬 문법을 수업을 통해 알게 되고 나만의 프로그램을 만들어보고 싶어서 만들게 된 스케줄러 프로그램입니다. 나머지의 내용들은 유튜브, 책등을 통해서 공부했습니다. >첫 프로그램이라 엉성한 코드가..

happyhyunwoong.tistory.com

물론 첫 프로젝트인만큼 수준이 정말정말 낮지만 그래도 직접 내가 해봤다는 것에서 여러가지 경험이 되었다. 그 이후에 듣는 제대로 된 웹크롤링 강의를 듣고 싶었다. 물론 첫 프로젝트를 할때는 유튜브, 책등으로 내용을 모아서 만든 것이였지만 모래성 같은 느낌을 많이 받았다. 이 강의는 어찌보면 내가 가장 먼저 들었어야하는 강의가 아니였나 싶다. 이 강의를 시작하게 된 결정적 계기는 '컴퓨터 사이언스 부트캠프 with 파이썬' 책을 읽기 시작하고 나서다. 이 책을 읽는데 실습과정이 많고 직접해보고 싶었기에 기왕하는 거라면 다 같이 하는게 좋을 것 같아 파이썬 강의와 책을 병행하게 되었다.


  • 강의 정리

#0-1. About this course

  1. Django는 웹 프레임워크다.

#0-3. How to Ask for Help

  1. 좋은 질문을 하자
  2. 목적, 원하는 것, 무엇을 해봤고, 어떤 에러인지 알려줄 필요가 있다.

#0-3. Code python Online

  1. 온라인에서 프로그래밍 할 수 있는 사이트가 존재함

https://repl.it/

 

The world's leading online coding platform

Powerful and simple online compiler, IDE, interpreter, and REPL. Code, compile, and run code in 50+ programming languages: Clojure, Haskell, Kotlin (beta), QBasic, Forth, LOLCODE, BrainF, Emoticon, Bloop, Unlambda, JavaScript, CoffeeScript, Scheme, APL, Lu

repl.it

#1-1,1-2. List in python

  1. 파이썬은 두가지 리스트 방법이 있다. 튜플과 리스트.
  2. 파이썬을 사용하면서 다양한 내용은 이곳에서 확인이 가능하다. -> 나도 코딩하다 모르면 찾아봐야한다.

https://docs.python.org/ko/3/library/index.html

 

파이썬 표준 라이브러리 — Python 3.8.1 문서

파이썬 표준 라이브러리 파이썬 언어 레퍼런스 는 파이썬 언어의 정확한 문법과 의미를 설명하고 있지만, 이 라이브러리 레퍼런스 설명서는 파이썬과 함께 배포되는 표준 라이브러리를 설명합니다. 또한, 파이썬 배포판에 일반적으로 포함되어있는 선택적 구성 요소 중 일부를 설명합니다. 파이썬의 표준 라이브러리는 매우 광범위하며, 아래 나열된 긴 목차에 표시된 대로 다양한 기능을 제공합니다. 라이브러리에는 일상적인 프로그래밍에서 발생하는 많은 문제에 대한 표준적인 해

docs.python.org

리스트 튜플  
많은 값을 정렬할려고 할 때/ 변경이 가능하다 리스트와 비슷한 일을 하지만 / 변경이 불가능하다.  

#1. Python language

  1. 파이썬의 기본문법을 다루고 있기에 여기서 내가 몰랐던 내용만 적도록 하자.
  2. is, is not ==,!=의 역할을 한다.
  3. 인자를 전해줄때 순서대로 전해주는 방법이 있으나 key argument라고 해서 직접 key에 값을 대입시키는 방법이 있다.
  4. 모듈을 사용해서 다양한 것을 할 수 있다. 모듈을 보고 뭐할지 생각해보는 것도 괜찮은 방법일 것 같다. 어쨌든 어떤 기능을 사용할 수 있어야 할 수 잇기 때문에.
  5. print 함수가 어떻게 무한히 인자를 받을 수 있는가?

#2-2. Navigating with Python

  1. urllib에서 할수도 있지만 requests 로 웹 크롤링을 진행한다. requests는 파이썬에서 요청을 만드는 기능을 모아놓은 것이다.
  2. html을 .text로 가져온다. 이렇게 많은 방대한 자료중 정보만을 추출하는 것을 beautiful Soup package에서 해준다.
  3. 이렇게 하면서 느낀게 이걸 알려주는 사람들은 자신이 누구한테 배워서 알아낸것이 아닌 사용설명서를 보고 쉽게 해석하는 것을 써놓은 것이라고 생각한다. 그러니까 나도 직접 사용설명서를 보면서 내용을 알 수 있고 그때가서 모르는 걸 찾아보는게 공부의 목표가 되지 않을까싶다.

#2-5. Requesting Each Page

  1. range함수는 그만큼의 배열을 만들어준다.
  2. HTML tag에 따라서 내용을 찾아주고 넣어주고의 반복이다.

#2-14, 2-15, 2-16. What is CSV

  1. python은 csv를 다루는 함수를 이미 가지고 있다.

#3-1. *args**kwargs

  1. 무한으로 argument를 받고 싶다면 두가지 방법이 존재한다. 1.*args로 무한으로 사용할 수 있다. 2.**kwargs는 keyword argument가 무한히 있다는 뜻이다. args는 튜플로 저장되고 kwargs는 딕셔너리처럼들어간다.

#3-2. Intro to Object Oriented Programming

  1. class는 설계도다. instance는 그 설계도의 결과물이다.

#3-3, 3-4. Methods part One, Methods part Two

  1. 모든 메소드는 instance를 첫번째 argument로 받는다.
  2. dir은 객체안에 있는 모든 것을 보여준다. 그중에서 __로 시작하는 메소드는 이미 파이선에서 만들어놓은 것이다.

https://happyhyunwoong.tistory.com/64

 

파이썬에서 함수와 메소드의 차이

궁금했던 이유 컴퓨터 사이언스 부트캠프 in 파이썬에서 함수와 메소드의 차이를 써놓았지만 잘 이해를 못했다. 설명 쉽게 말하면 클래스 안의 함수 그리고 클래스 밖의 함수인지의 차이이다. 메소드= 클래스안에..

happyhyunwoong.tistory.com

 

#3-3. Extending Classes

  1. 상속을 통해 다양한 클래스를 증가할 수 있다.
  2. super()는 부모클래스를 상속하는 함수

  • 강의 총평

강의를 전부 듣고 크게 깨달은 점은 내가 직접 프로그램을 만들어보고 사용하면서 궁금한 것을 라이브러리 사용 설명서를 직접보면서 알 필요가 있다는 것이다. 이렇게 생각한 이유는 나는 누군가가 해놓은 내용을 따라하기만 바빴지 내가 직접 설명서를 볼 생각조차 하지 않았다. 특히 BeautifulSoup은 이걸 쓰면서도 왜 이렇게 되는지 많이 궁금했었는데 그 궁금증을 여기서 해결하고 이후로 궁금해질 내용들을 해결할 방법을 알게되었다.

강의는 역시 nomad coder답게 굉장히 듣기 편했다. 이번에는 vscode로 실습을 하지않아 코드가 남지는 않았지만 다른 프로젝트를 할수 있게 되는 계기를 얻은 것 같다. 예를 들면 Django라던지 좀 더 해볼게 많이 늘었다.


  • 깃허브 링크

 

728x90