[Python] Python으로 웹 스크래퍼 만들기 (2.15~2.16 Saving to CSV)

Jeongyun Heo·2020년 12월 27일
0
post-thumbnail

노마드 코더 Python으로 웹 스크래퍼 만들기
https://nomadcoders.co/python-for-beginners

2.15 Saving to CSV

✍️  open 함수

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) 입력

실행해보기

리스트 반환됨

✍️  values 함수

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 다시 입력

2.16 OMG THIS IS AWESOME

repl.it에 작성한 파일들을 다운로드 받는다.

Download as zip 클릭

다운로드 받은 파일을 VSCode에서 열어본다.

잘 열린다.

jobs.csv 파일을 구글 시트로 가져온다.

구분자 유형: 쉼표


약 3200개 일자리 가져옴

지원 링크 잘 열리나 확인해보기

잘 열림

0개의 댓글