2022-여름인턴 근무일지-2

송하·2022년 7월 8일
0

2022-여름인턴

목록 보기
2/4
post-thumbnail

😰 2022년 7월 8일 금요일

pytube 사용하기

다음은 스트림을 나열하고 필터링하는 코드이다.

yt.streams #스트림 필터링
yt.streams.filter(progressive=True) #프로그레시브 스트림 필터링 *프로그레시브는 단일 파일에 비디오와 오디오를 포함하지만 일반적으로 최고 품질의 미디어를 제공하지 않ㅇㅁ
yt.streams.filter(adaptive=True) #DASH 스트림 필터링 *DASH(Dynamic Adaptive Streaming over HTTP)
yt.streams.filter(only_audio=True) #오디오 전용 필터링
yt.streams.filter(file_extension='mp4') #mp4형식 필터링
stream = yt.streams.get_by_itag(22)
stream.download() #스트림 다운로드

이건 사실 어제 한거였다.. 여기까지는 어찌어찌 돌렸는데 그 뒤부터 안돌아가길래 내일 아침에 회사와서 마져해야겠다는 생각을 했다.

회사에 와서 주피터노트북을 켜서 돌렸는데 다음과 같은 에러가 떴다.

뭐가 문제지? 내가 설치를 안했나? 하고 봤지만 설치하고도 돌아가질 않았다. 그래서 설마 버전이 다른가? 해서 확인해보니 주피터노트북은 3.10.2 내 터미널은 3.9.13이었다.. (이러니 안돌아가지...🤦🏻‍♀️ 심지어 이 뒤에는 3.10.5가 되어버렸음..) 그래서 어떻게 열심히 터미널 버전을 바꾸려고 찾아서 이것저것 해봤는데 되는게 없었다...

결국 나는 노트북을 들고 부장님과 팀장님을 찾아갔다... 그래서 결론은 pipenv로 가상환경을 만들거나 docker를 사용하라고 하셨는데... 내가 써본 도커는 작년 여름 제대로 이해 하지 못한채 딱 한번 써본것이었다... 그래서 pipenv, pyenv, docker를 조금 공부해볼까 했으나 docker는 맥북 m1에서는 작동하지 않는다고 한다.

부장님께서 pipenv를 조금 설명해주셨다. 설명을 하자면..

pipenv는 파이썬 가상환경을 만들기 위한 도구라고 보면 된다.

다음 코드를 통해 설치하고 가상환경을 만드는 작업까지 해보자

pip install pipenv
pipenv --version

이게 만약 아래의 사진과 같이 뜨면 잘 설치가 된거다

가상환경을 만들기 위해서는 아래 코드를 이용한다. 이때 파이썬 버전을 지정해 줄 수 있다. * 여기서 폴더 하나를 지정해서 작업하면 편리하다. 나는 crawling이라는 폴더를 사용했다.

pipenv --python 3.10

그런 다음 가상환경을 실행시키기 위해 다음 코드를 사용한다.

pipenv shell

이렇게 하면 가상환경으로 들어오게 된다!!

📍 과제

  • 부장님이 만드신 web_driver.py를 이용하여 네이버 홈페이지 제목을 출력하기

코드는 다음과 같다.

from web_driver import WebDriver, WebDriverError

browser = WebDriver('chromedriver', driver_path='/usr/local/bin/chromedriver')

driver = browser.connect()
url = 'https://www.naver.com'
if driver is not None:
            driver.get(url)
            print(driver.title+' 입니다.')
'''
import warnings
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

hrome_options = Options()
chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"]) # 셀레니움 로그 무시
warnings.filterwarnings("ignore", category=DeprecationWarning)

browser = webdriver.Chrome(options = chrome_options)
browser.get('https://www.naver.com') # 자동으로 꺼져버림.. 왜...?
print(browser.title+' 입니다.')
'''

아래에 주석 처리된 부분은 내가 강의를 들으면서 했던 코드를 기반으로 네이버 홈페이지 제목을 출력해본 것이고 위에 있는 코드가 부장님이 만드신 모듈을 사용한 코드이다.

모듈은 올릴 수 없지만.. 처음에는 매개변수에 뭐가 들어가야 하나 잘 몰랐는데 깃허브에 나와있는 것을 참고하니 잘 해결이 되었다.

처음 돌렸을 때 None type의 title을 출력할 수 없다는 에러가 떠서 크롬드라이버 연결되는 부분에 connected!를 출력하게 하니 연결은 잘 되는 것 같았다. 😣 뭐가 문제지? 하고 유심히 봤는데 알고보니 아래처럼 코드를 작성해서 그런 에러가 뜬 것이 었다.

if driver is not None:
            browser.get(url)
            print(browser.title+' 입니다.')

강의 들었던 부분과 변수 이름이 조금 겹쳐서 생긴 실수였고 잘 고쳐서 화면처럼 출력이 아주 잘 된다..^^

주말에 가서 노트북 안 두드릴 생각에 넘 신난다..ㅎㅎ


여담으로..

아직 나의 주피터 노트북은 돌아오지 못했다... 이건 인턴 끝나고 다시 사용할 수 있게 만들어둬야겠다..ㅜㅜ 일단 당분간은 가상환경에서 회사에서 하라는 대로 크롤링을 하기위해 노력해야겠다

그리고 출퇴근때 날씨가 너무 살인적이다....🥵 학교 다닐땐 시원한 방안에서 공부만했더니 몰랐다.. 올해 여름이 아주 살인적이라는 걸..

맛있는걸 정말 많이 먹고 다닌다 ㅎㅎ 나중에 인턴 끝나면 점심 먹은걸 다 올려볼까봐... 하하

다음주도 화이팅..!구리 🦝

profile
Master Student @ KU👩🏻‍🎓

0개의 댓글