
updated 2023.01.31
조금 더 편하게 이용할 수 있도록 chromedriver autoinstaller 이용방법을 추가하였습니다.
참고 블로그 : https://blog.naver.com/kiddwannabe/222355619596
### 라이브러리 설치하기(최초1회)
! pip install selenium
! pip install chromedriver-autoinstaller
from selenium import webdriver
import chromedriver_autoinstaller
# chromedriver 최신버전 설치하기!
chromedriver_autoinstaller.install()
# chrome 브라우저 열기
browser = webdriver.Chrome()
최종확인 : 2021.12.30
넷플릭스 사이트 개편으로 섹션 윗 부분에 넷플릭스 설명 부분이 추가되었습니다.
영상 섹션만 선택하기 위해 아래와 같이 class 속성 값을 추가하여 선택하도록 수정하였습니다.
section_list = soup.select('section') # 변경전)
section_list = soup.select('section.nm-collections-row') # 수정) class 정보 추가
(최종확인 : 2021.12.30)
넷플릭스 사이트 개편으로, 제목 부분 태그가 변경되었습니다.
section_title = section.select('h3')[0].text #변경전)
section_title = section.select('h2')[0].text # 수정) 섹션 제목 부분 태그 변경
2022.01.01 추가 수정
넷플릭스에서 이미지 파일, 프로그램 URL 부분을 가져올 때
정보가 없거나, 상이한 정보가 들어있는 경우가 있어 이 때, 정리하는 코드를 추가하였습니다.
이미지 파일 정보인 경우
1. 이미지 파일 정보를 포함하는 경우,
2. 파일이 아닌 다른 형태(data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==) 로 들어있는 경우(화면상에는 이미지 표시되지 않음)
3. 이미지 파일 정보 자체가 없는 경우가 있네요.
위 단계별로 하나씩 점검하면서, 찾는 정보가 아닌 경우 그 다음 정보로 정리하도록
try, except 구문, if 조건문 등을 활용하여 아래와 같이 수정했습니다.
------------------------------------------------------------------------
try:
program_img = program.select('img')[0]['src']
if 'https' not in program_img:
program_img = '' # 만약, 이미지 파일 위치가 표시되지 않는 경우(화면에 보이지 않는 경우)는 빈 칸으로 입력하기
except:
program_img = '' # 이미지 정보 자체가 없는 경우 빈 칸으로 입력
------------------------------------------------------------------------
프로그램 링크 부분도 태그에 아예 정보가 없는 경우가 있어, 없을 경우 빈칸이 입력되도록 정리하였습니다.
------------------------------------------------------------------------
try:
program_link = program.select('a')[0]['href']
except:
program_link = '' # 링크 주소가 없는 경우는 빈 칸으로 입력
------------------------------------------------------------------------
# 최종확인 : 2022.01.01
----------------------------------------------
# 앞 부분에 브라우저 열기 코드는 추가해주세요
url = 'https://www.netflix.com/kr/browse/genre/839338'
browser.get(url)
html = browser.page_source
from bs4 import BeautifulSoup
soup = BeautifulSoup(html,'html.parser')
# section_list = soup.select('section')
section_list = soup.select('section.nm-collections-row') # 수정) class 정보 추가
results = []
for section in section_list:
# section_title = section.select('h3')[0].text
section_title = section.select('h2')[0].text # 수정) 섹션 제목 부분 태그 변경
program_list = section.select('li')
for program in program_list:
program_title = program.select('span.nm-collections-title-name')[0].text
try:
program_img = program.select('img')[0]['src']
except:
program_img = '' # 이미지 정보가 없는 경우 빈 칸으로 입력
try:
program_link = program.select('a')[0]['href']
except:
program_link = '' # 링크 주소가 없는 경우는 빈 칸으로 입력
data = [section_title,program_title, program_img, program_link]
print(data)
results.append(data)
- 시행 착오는 제가 모두 겪었습니다. 저의 노하우를 쉽고, 빠르게 알려드리겠습니다.
- 활용도가 낮은 것은 덜어내고, 사용도가 가장 높은 핵심들로만 눌러 담았습니다.
- 그냥 보고 듣는 강의가 아니라, 하나 하나 타이팡 하면서 실습할 수 있도록 구성하였습니다.
Q&A
Q. 비 전공자도 들을 수 있나요?? 프로그래밍 언어 해본적이 없는데..
A. 비전공자를 위한 강의로, 프로그램 설치부터 하나 하나 진행합니다. 괜히 어려운 용어나 언제 사용할지 모르는 명령어들은 덜어내고, 당장 활용도 높고 앞으로도 계속 사용할 명령어 위주로 구성하였습니다. 처음하셔도 충분히 진행 가능합니다.
Q. 다른 강의와의 차이점은?
A. 가능한 라이브코딩 환경에 맞추어 빈 파일에 하나하나 타이핑해가며 진행합니다. 이미지로 설명이 꼭 필요한 부분은 PPT 장표로 추가 설명을 진행합니다.
PPT만 보고 지나가는 강의가 아닌. 이미 입력한 코드만 읽어주는 강의가 아닌.
하나 하나 직접 입력하고 실행하고, 에러도 보고 결과도 살펴보는 완전 실전 활용을 위한 강의입니다.