본문 바로가기
[챌린지]/[패스트캠퍼스] 파이썬 초격차

패스트캠퍼스 환급챌린지 42일차 미션 (3월 13일) : 파이썬으로 할 수 있는 모든 것 with 47개 프로젝트 초격차 패키지 수강 후기

by 쿠키토끼 2024. 3. 13.

01. 제목

패스트캠퍼스 환급챌린지 42일차 미션 (3월 13일) : 
파이썬으로 할 수 있는 모든 것 with 47개 프로젝트 초격차 패키지 Online 수강 후기
 

02. 포스팅 본문 (학습 일기) 가이드

 
1. 학습 인증샷 2장 이상 포함

카메라로 직접 촬영한 수강 인증 사진 (캡쳐X)

 

 

2. 학습 후기 700자 이상 (공백 제외)

오늘은 시스템 명령어 실행과 미니 프로젝트 실습을 통해 병렬처리 웹 크롤러 만들기를 마무리 해보았다.

시스템 명령어 실행 라이브러리에는 subprocess가 있다.

서브프로세서는 파이썬 스크립트 상에서 외부 프로세스 시스템 명령어를 실행할 때 사용하는 표준 모듈이다. 새로운 프로세스를 실행하도록 도와주고, 프로세서의 입/출력 및 에러 결과에 대한 리턴 값을 사용자가 직접 제어할 수 있게 도와줄 수있는 편리한 기능이다.

파이참을 이용해서 실습을 해보았다. run 구문을 넣어 실행시켜본다. 실행 후에 인코딩 에러가 났다면 파이참-파일-설정에서 에디터-파일 인코딩 들어가서 프로젝트 인코딩을 UTF-8로 적용 설정해준다.

또 다른 에러에는 상단의 구성편집에서 Python 인터프리터(코드를 해석할 가상환경) 환경이 잘못 잡혀있으면 에러가 발생할 수 있다. 해당 강의는 fastcampus 로 설정되어있다.

이런식으로 파이썬 내에서 다른 파이썬 프로그램이나 다른 프로세서 프로그램을 중복 실행할 경우 등 서브 프로세서 라이브러리를 요긴하게 쓸 수 있다.

다음은 배웠던 것을 바탕으로 병렬처리 웹 크롤러를 만들고 진행순서는

1. 로깅설정(만든 프로그램이 어떻게 실행되는지의 상태 확인용)

2. 시스템 정보 확인(시스템의 cpu 등을 알아보고 병렬처리를 내 시스템 사양에 따라 설정해본다)

3. 웹 크롤러 만들기(이후 챕터인 최신뉴스 이메일로 받아오기 강의에서 관련하여 또 써먹는다고 한다)

4. 병렬처리 세팅

5. 실행 스케줄러 설정(웹크롤러가 어떤 주기로 실행되는지)

6. 매개변수를 입력 받는 시스템 명령어 실행(몇 개의 cpu를 몇 초 주기를 이런식으로 사용자가 입력하여 프로그램실행)

지난 번과 동일하게 복습하는 차원에서 한 차례 실행해보자면

로깅설정의 경우 로깅을 임포트하고

로거 생성 후에 로그의 출력 기준 설정, 로그 형식 지정, 로그 출력, 로그 파일 생성까지 해준다.

시스템 정보 확인을 하는데 이미 로거를 만들어놓았기에 프린트로 출력하기 보단 logger.info 해서 출력해준다.

다음은 웹크롤러를 만들어본다.

웹크롤러 강의하면 뷰티풀숲 외장라이브러리를 거의 쓰는 듯 하다. 이 강의에서도 BeautifulSoup 외장라이브러리를 임포트하고 리퀘스츠를 통해 html정보를 가져오도록 한다.

뉴스의 6개의 카테고리를 크롤링하고 이 크롤링에 앞서서 html 헤더 정보를 입력해주어야 하는데 사용하는 브라우저마다 정보가 다르므로 헤더 정보 일람 사이트(https://www.useragentstring.com/pages/useragentstring.php)에 자신이 사용하는 브라우저에 맞게 정보를 기입해준다. 강의도 그렇고 나도 크롬을 써서 그대로 실행했다.

헤더 설정을 해주고 나서는 서버 응답 확인을 위해 리퀘스처라는 라이브러리를 통해 html 크롤링하고 뷰티풀숲의 객체 생성을 하고 페이지 정보 크롤링과 기사 제목 크롤링(ul 태그 가져오기)해준다.

오류가 나는 경우는 뷰티풀숲을 설치안해준 경우라서 아나콘다에서 pip install bs4 해서 뷰티풀숲 설치를 해주도록 한다.

- Anaconda Prompt 실행시키기

- base 모드 -> conda activate fastcampus 로 패스트캠퍼스 가상모드 변경

- pip install bs4 명령어 넣고 설치하기

---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
Cell In[8], line 2
      1 from bs4 import BeautifulSoup
----> 2 import requests

ModuleNotFoundError: No module named 'requests'

 

보니까 나는 리퀘스처도 실행안되어 있어서 다시 아나콘다 프롬프트에서 pip install requests 명령어 입력해서 설치했다.

web_crawler(url1) 해서 각 카테고리(url1~6 변경하면 각 각의 카테고리에 맞게) 텍스트인 제목과 기사 한 줄의 부분을 잘 가져와준다. 

다음은 병렬처리 세팅을 통해 많은 url처리를 쉽게 하도록 해준다. 멀티프로세싱 라이브러리를 이용하고 현재는 6개의 url을 가져오니까 이 가져올 url을 리스트 만들어준다. 로깅설정해주고 사용할 코어 개수를 넣어준다.

스케줄러 라이브러리를 설정해주고 마지막으로 매개변수를 입력받는 시스템 명령어 실행해준다.

모든 세팅을 마치고 파이참에서 터미널로 실행해보았다.

해당 강의를 통해서 웹크롤러의 부분적인 요소만 파악한 것 같아서 아직 잘모르는 부분이 더 많아서 아쉬웠다. 찍먹느낌으로다가 크롤링이란 이런 느낌으로 한다는 생각으로 해서 그런지 결과도 나쁘진 않았다. 이후 챕터에서도 웹크롤링 연계해서 강의를 해주신다고 했지만 웹 크롤링 프로젝트 파트를 통해 좀 더 알아보고 나머지 1파트를 이어가볼 예정이다. 

 

03. 필수 본문 내용 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
 

04. 필수 해시태그 

#패스트캠퍼스 #직장인자기계발 #직장인공부 #환급챌린지 #패스트캠퍼스후기 #오공완

05. 필수 URL 

https://bit.ly/48sS29N

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

 

 

[수강 강의 클립] 

-Ch07. [시스템] N배 빠른 병렬처리 웹 크롤러 만들기

08. 시스템 명령어 실행

09. 미니 프로젝트 실습

 

[※ 기타사항메모 ※]
{100% 환급챌린지 미션 가이드 참조 : 

https://fastcampus.co.kr/event_online_challenge_2401_mission}

 

커리어 성장을 위한 최고의 실무교육 아카데미 | 패스트캠퍼스

성인 교육 서비스 기업, 패스트캠퍼스는 개인과 조직의 실질적인 '업(業)'의 성장을 돕고자 모든 종류의 교육 콘텐츠 서비스를 제공하는 대한민국 No. 1 교육 서비스 회사입니다.

fastcampus.co.kr