노마드 코더 Python으로 웹 스크래퍼 만들기
https://nomadcoders.co/python-for-beginners
open
함수로 파일을 생성한다.
📕 점프 투 파이썬 04-3 파일 읽고 쓰기
https://wikidocs.net/26
파일 객체 = open(파일 이름, 파일 열기 모드)
파일을 w(쓰기 모드)로 열면
해당 파일이 이미 존재할 경우 원래 있던 내용이 모두 사라지고,
해당 파일이 존재하지 않으면 새로운 파일이 생성된다.
save.py에 file
이라는 새로운 변수 생성
파일 이름은 jobs.csv
로 해준다.
mode는 w(쓰기 모드)로 해준다.
동작하는지 확인하기 위해 file을 출력해본다.
StackOverflow까지 다 하면 너무 많아서 indeed로만 해보도록 한다.
# main.py
from indeed import get_jobs as get_indeed_jobs
from so import get_jobs as get_so_jobs
from save import save_to_file
so_jobs = get_so_jobs() # 주석 처리 해주기
indeed_jobs = get_indeed_jobs()
jobs = so_jobs + indeed_jobs # so_jobs 지우기
save_to_file(jobs)
실행해본다.
scrapper가 잘 동작했다.
jobs.csv
파일이 새로 생성된 것을 볼 수 있다.
jobs.csv
첫 줄을 작성해 주어야 한다.
.writer
를 이용해서 파일을 입력한다. (CSV를 import한 이유)
.writer
괄호 안에 어떤 파일에 쓸 건지 지정해 주어야 한다.
.writerow
행 입력
괄호 안에 리스트로 입력해준다.
jobs.csv
를 확인해 보면 내용이 잘 들어갔다.
아까 코멘트했던 걸 없애준다.
from indeed import get_jobs as get_indeed_jobs
from so import get_jobs as get_so_jobs
from save import save_to_file
#so_jobs = get_so_jobs()
indeed_jobs = get_indeed_jobs() # 주석 없애기
jobs = indeed_jobs # 주석 없애기
save_to_file(jobs) # 인수로 jobs 다시 써주기
save.py로 가서 매개변수에 jobs
다시 입력
indeed.py로 가서 last_page
대신에 페이지 2개만 가져오도록 2
입력
print(jobs)
입력
실행해보기
리스트 반환됨
dictionary 안에 Key 없이 Value만 얻고 싶음
for문 입력 for job in jobs:
values
함수 호출
📕 Value 리스트 만들기 (values)
https://wikidocs.net/16#value-values
writer
에서 print
로 변경
실행해본다.
value만 출력되었다.
근데 앞에 dict_values가 붙어있다.
type을 출력해보면
string이 아니라 dict_values라고 나온다.
dict_values 타입을 list 타입으로 바꾼다.
list
함수 사용
앞에 dict_values가 사라지고 리스트 형태가 되었다.
동작을 확인했으니 파일에 입력해주기 위해 write.writerow
입력
실행해본다.
jobs.csv
를 확인해 보면 내용이 잘 들어갔다.
코드를 실행하기 전에 원래대로 돌려놓는다.
indeed.py로 가서 last_page
다시 입력
main.py로 가서 주석 없애주고
so_jobs
다시 입력
repl.it에 작성한 파일들을 다운로드 받는다.
Download as zip
클릭
다운로드 받은 파일을 VSCode에서 열어본다.
잘 열린다.
jobs.csv
파일을 구글 시트로 가져온다.
구분자 유형: 쉼표
약 3200개 일자리 가져옴
지원 링크 잘 열리나 확인해보기
잘 열림