5.19 Write to File 이번에는 Python 에서 파일을 열고 파일에 내용을 쓰는 것을 해본다. 기존에 사용했던 indeed 와 wwr 스크랩하는 코드는 잠시 주석처리하고 시작. open 이라는 빌트인 함수(print, input 과 비슷하다) 를 사용한다. csv 는 comma-separated-value 라는 파일 포맷이다. w 는 write 의 약자로 쓰기전용이다. 읽기 전용( read-only ) 도 있다. from extractors.indeed import extract_indeed_jobs from extractors.wwr import extract_wwr_jobs keyword = input('What do you want to search for?') file = open(f..
5.17 Refactor indeed.com 에서 python 을 검색했을때 url 을 보면, 페이지를 바꿀 때마다 start 숫자가 바뀌는것을 알 수 있다. 2 페이지에는 start 가 10, 3 페이지에는 start 가 20 으로 바뀐다. 따라서 이 페이지의 pagination 은 여기 url 의 &start 부분이다. 기존의 아래 코드를 → def extract_indeedn_jobs(keword): pages = get_page_count('python') for page in range(pages): base_url = 'https://kr.indeed.com/jobs?q=' browser.get(f'{base_url}{keyword}') 아래 처럼 바꿔준다. pages = get_page_co..
5.16 Pages part Two 이전 게시물에서 검색 첫 페이지에 div ( 페이지 개수를 세주는 div ) 가 없을 때 검색 결과에 구인정보가 있는지 없는지 출력해주는 코드를 작성했었다. 보통 구인 정보가 있는 경우에는 스크래핑 할 페이지가 1개 만 있다는것을 의미한다. 만약 페이지를 받게 된다면, 몇 개가 있는지 세어봐야 한다. 만약 5개 페이지 밖에 없으면 5개의 div 를 받게 된다. 만약 5개 보다 더 많은 경우에도 5개까지만 나타내는 코드를 작성한다. ( 웹사이트 부하 방지 ) 만약 5개보다 적게 있다면, count 를 그대로 return 해준다. from requests import get from bs4 import BeautifulSo..
5.15 Pages (Pages 개수 count 하는 함수 만들기) 첫 페이지 pagination(페이지 번호)에서 몇 개의 페이지가 있는지 알아내는 코드를 작성해본다. 페이지 번호가 총 5개, 다음을 넘기는 화살표가 1개 있는 코드를 확인할 수 있다. nav role 이 navigation인 코드에서 div 가 3개만 있다면, 총 3페이지만 있다는 의미가 되며, div 가 6개가 있다면, 총 5페이지에 1개의 화살표(다음페이지로 넘어가는) 가 있다는 뜻이 된다. 그럼 얼마만큼의 페이지를 스크래핑해야 하는지 알 수 있다. 프로그램 작동 방식이 바뀌어야 한다. 왜냐하면 이제 프로그램이 해야 하는 일은 2가지이기 때문이다. ( 총 얼마만큼의 페이지가 있는지 개수 세기, 각 페이지 안의 구인정보 가져오기 ) ..
2.10 데이터를, 즉 주스 기계에 과일을 넣으면 맛있는 주스를 얻게 된다. = return 키워드가 하는 역할 return 을 사용해 함수로 부터 값을 받아 낸다. return은 함수 바깥으로 값을 보내주며, python은 그 값을 가져다가 코드 상에 대입해준다 return은 함수 바깥으로 값을 던진다, python은 그 값을 잡아서 코드에 대입해준다 return = 함수 바깥으로 값을 보낸다 (tax_calculator(1000) 로 보낸다) tax_calculator 를 호출하면 money parameter 에 1000 이라는 값을 넣어서 1000 * 0.35 즉 350의 값을 준다. 그 값을 a라는 변수에 넣어준다 def tax_calculator(money): return money * ..
2. 6 parameter 함수 이름에는 공백이 들어가면 안되고, 숫자로 시작해서도 안된다. def say_hello() - say_hello 라는 함수(function)를 정의 def 하고 괄호 () - 괄호를 쓰는 것은 실행버튼을 누른거랑 같다 python 은 공백에 민감하기 때문에 함수 안에 정의 하기 위해서는 def say_hello(): print('abc') - 꼭 스페이스 바 2번 or tab을 눌러서 안에다 정의해주자. 밖에다 정의하면 따로따로 되는거 Paramaters & Arguments (매개변수와 인수) 둘이 혼용해서 사용되는 헷갈리는 용어이므로 잘 구분해야 한다. parameter(매개변수)는 함수에 입력으로 전달된 값을 받는 변수를 의미하고 Argument(인수)는 함수를..