1. 웹 사이트가져오기

먼저 온라인 라이브러리를 사용한다

 

라이브러리란? 모듈과 동일하다 함수, 클래스 등등이 모여있는 집합체라고 이해할 수 있다

 

파이썬에 내장되어있는 모듈과 다르게 온라인 라이브러리는 강력하고 빠르게 데이터들을 추출할 수 있다

 

니꼬쌤은 requests2와 beautifulsoup4를 추천했다

 

requests2는 URL전체를 가져오는 용도이다

 

beautifulsoup4는 그것을 html태그로 읽어내는 용도이다

 

각각 Repl.it의 Packages에서 검색해서 다운로드할 수 있다

 

그리고 이런 식으로 불러온다

 

import requests
from bs4 import BeautifulSoup

이렇게 두가지 라이브러리를 불러왔다

 

우리가 찾고자하는 데이터는 채용공고의 제목,회사의 이름, 회사의 위치, 지원할 수 있는 링크이다

 

또 마지막페이지 번호가 필요한데 이것은 마지막 페이지까지의 정보를 다 스크래핑하기위해서 필요하다

 

requests 라이브러리를 통해 URL을 가져온다 그리고 result변수에 담아준다

result = requests.get(URL)

그리고 beautifulsoup 라이브러리를 통해 URL을 html형태로 파싱해서 데이터를 추출할 수 있다

마찬가지로 soup변수에 담아준다

파싱이란? 페이지 내 선택한 데이터를 순서나 패턴별로 추출하는 것이다

soup = BeautifulSoup(result.text, "html.parser")

 우리는 html패턴으로 추출했다

 

import requests
from bs4 import BeautifulSoup


result = requests.get(URL)
soup = BeautifulSoup(result.text, "html.parser")

작성한 코드

웹 스크래핑이란?

내가 아는 것은 필요한 정보들을 선택해서 가져올 수 있고

 

사용자가 설정을 통해 매시간마다 정보들이 업데이트되는 것인 줄 알았으나...

 

웹상의 데이터를 추출하는 것은 맞지만 정보들이 업데이트 되는 것은 아니었다

 

다운로드한 게임이 업데이트되려면 새로 무언가가 설치되어야 하는 것과 같은 느낌?

 

일단! 데이터추출 한다

 

니꼬쌤은 indeed와 stackoverflow의 사이트에서 파이썬과 관련된 직장을 스크래핑하려 한다

 

순서는 이렇다

 

1. 웹사이트 가져오기

 

2. 페이지 인덱스를 수로 만들기 

 

3. 찾을 요소들 찾기(제목,작성자,이름,등등 알고자하는 내용)

 

4. 요소들을 리스트화 하기

 

5. CSV파일로 저장 

 

6. 스프레드시트에서 불러오기

 

다음에 계속...

 

 

if else 조건문

형식

if 조건:    if는 조건이 참(True)일 때 내용이 실행됨

   내용

elif 조건:  elif는 if의 조건이 거짓(false)일때 elif의 조건이 참이면 내용이 실행됨 else if의 줄임말

   내용

else:        else는 모든 조건이 다 거짓일때 내용이 실행됨

   내용

 

조건에 쓰이는 연산자

1) 논리연산자

and(둘 다),  or(둘 중 하나),  not(~이 아닌 것, 차집합) 

 

2) 비교 연산자 

<(작다), <=(작같), >(크다), >=(크같), ==(같다),!=(같지 않다), is(그것이 이거니? 이거면 해~), is not(그것이 이게 아니니? 아니면 해~)

 

 

for loop 반복문

형식

for 입력될 시퀀스 in 표현할 시퀀스 :

    반복할 내용

예시

days =("M", "T", "W", "Th", "F")

for day in days:

    print(day)

=>M

    T

    W

    Th

    F

 

Modules 

함수들의 집합? 같은 느낌

 

맨 위에 import 모듈 이름을 해서 불러온다 

 

비유를 하자면 스타크래프트에 Show me the money를 치트키로 치면

핵이 덮어지는 느낌?

 

모든 핵을 불러오면 그 당시 컴퓨터로는 속도가 많이 느려지고 비효율적이었다

 

모듈도 마찬가지로 전체 파일을 불러오기보단 

 

from 모듈 이름 import 함수 이름 이런 식으로 함수 몇 개를 가져오는 것이 좋다

Code Challenge

니꼬쌤이 과제를 내주셨다 7가지 연산 만들고 활용해보기

 

Python Standard Liblary를 참고하여 만들었다

 

함수에 문자로 수를 넣는 사람들을 위해 int()를 이용해 정수로 바꿔주도록 했다

 

이렇게 올리니 니꼬쌤이 칭찬을 해주셨다

너무나도 쉽게 설명해주셔서 감사합니다 니꼬쌤

 

함수(function)

print()처럼 기본적으로 내장된 함수가 있다

 

우리가 보고자 하는 함수는 직접 정의해야 된다

 

"def 함수 이름 (인자): " 이런 식으로 정의한다

     함수 내용      

 

함수내용 앞에 빈 공간이 파이썬만이 가지는 특징이다

 

{ }(중괄호)를 쓰지 않고 빈 공간으로 그것을 정의한다

 

 

 

 

정의된 함수를 사용하려면 "함수 이름(인자)"이런 식으로 호출한다

 

함수 이름이 버튼이면 ( )가 버튼을 누르는 것이라 니꼬쌤은 비유했다

 

 

 

거의 대부분의 함수는 반환 값을 가진다 

 

return 반환될 값 이런 식으로 표현하며 함수 맨 마지막에 써준다 

(그렇지 않으면  return뒤의 함수 내용은 병풍 뒤에서 향냄새를 맡게 될 것이다)

 

 

 

 

 

파이썬만의 특징: 인자의 이름으로 그 값을 가진다 (이름이 아닌 순서로 값을 가지지 않음)

 

참고: 문자열에 인자를 넣는 법 

1. "asdfasdf"+{인자}+"wefdf"

2. "asdfasdf {인자} wefdf" (이 편이 더 쉽게 느껴졌다)

어제 배웠던 것

 

Sequence Type 

 

파이썬에서 시퀀스 타입은 '열거형'이라는 의미에 가깝다

 

Lists, tuples, xrage object 또한 다른 언어들과 다르게 strings도 시퀀스 타입이다

참고) Python Standard Library : 파이썬 문법에 관한 내용들이 상세히 설명되어있다

 

1. List (형태 : 변수=["", "", ""...])

리스트에서 중요한 두 가지

 

1) 찾기 쉽다(common)

 

days="M, T, W, Th, F"라면 이중에 W를 찾는 것은 어렵다

 

days=["m", "t", "w", "th", "f"]라면 인덱스를 활용해 찾을 수 있다

 

인덱스는 번호표(?) 같은 느낌 컴퓨터라 0부터 시작한다

 

days [0]은 m days [1]은 t 이런 식이다

 

 

2) 값을 변경할 수 있다(mutable)

 

days=["m", "t", "w", "th", "f"]에서 s를 추가하고 싶을 경우

 

days.append("s")를 해주면 추가가 된다

 

https://docs.python.org/3/library/stdtypes.html#sequence-types-list-tuple-range

 

Built-in Types — Python 3.8.2 documentation

The following sections describe the standard types that are built into the interpreter. The principal built-in types are numerics, sequences, mappings, classes, instances and exceptions. Some collection classes are mutable. The methods that add, subtract,

docs.python.org

이곳에 어떤 기능이 되는지가 잘 나와있다

 

2.Tuple (형태 : 변수=("", "", ""...))

튜플의 중요한 두 가지

 

1) 찾을 수 있다 (common)

 

리스트와 동일

 

2) 변할 수 없다(unmutable)

 

직접 튜플 안의 내용을 바꾸지 않고는 변할 수  없다

 

 

3.Dictionary (형태 : 변수={"":"", "":""...})

딕셔너리의 중요한 두 가지 

 

1) 찾을 수 있다 

 

2) 변할 수 있다(mutable)

 

 

'무엇은 뭐이다' 이런 식으로 나타나서 보기가 좋다

 

+ Recent posts