0. 개요 RSA 알고리즘은 미국 MIT의 Rivest, Shamir, Adleman 이 발표한 공개키 암호화 방식으로, 공개키 암호화의 개념을 수학적으로 구체화 시킨 알고리즘 이다. RSA 공개키 암호화 알고리즘은 이 3명 이름의 앞글자를 딴 것이다. 1. 개념 RSA는 공개키 암호 알고리즘 중 하나이며, 세계적으로 사실상 표준이다. 인수분해 문제 해결의 높은 난이도를 이용한 가장 대표적인 공개키 암호 알고리즘으로 암호화 뿐만 아니라 전자서명의 용도로도 사용된다. SSL 프로토콜을 가진 많은 웹브라우저, PGP, 공개키 암호 시스템을 사용하는 정부 시스템 등이 RSA를 사용한다. RSA는 2개의 키를 사용하는데, 모두에게 공개하는 공개키 ( Public Key )와 공개해선 안 되는 개인키 ( Priv..
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.18 Recap 이전 게시물에서 extractors 폴더안에 wwr.py 와 indeed.py 파일을 만들어서 각 웹사이트에 맞는 웹스크래퍼 코드를 작성해서 저장했다. 이번 게시물은 사용자에게 입력받는걸 해본다. 사용자는 keyword 를 입력하고, 검색한 결과를 내가 만든 2개의 함수를 모두 호출해서 사용자에게 반환한다. 먼저 indeed로 부터 extractors 를 가져온다. 아래의 코드는 indeed 와 weworkremotely 웹사이트에서 구인공고를 스크래핑하는 코드를 불러오는 작업이다. 두 함수는 리스트에 저장되기 때문에 아래처럼 사용이 가능하다. from extractors.indeed import extract_indeed_jobs from extractors.wwr import ex..
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가지이기 때문이다. ( 총 얼마만큼의 페이지가 있는지 개수 세기, 각 페이지 안의 구인정보 가져오기 ) ..