본문 바로가기
개발일지/selenium, BeautifulSoup, requests

beautifulsoup netflex(넷플릭스) title 가져오기 복기

by 개발에정착하고싶다 2022. 6. 23.

# 넷플릭스 스크래핑을 위해서 중간 과정을 복기해보도록 하겠다.

 

# 단계0

# 가장 기초로 시작해야하는 webdriver 호출등은 환경 등이 다르기 때문에 생략을 하고, 가져왔다는 가정하에 진행해보겠다.

html = browser.page_source

soup = BeautifulSoup(html, 'html.parser')


# 단계1
section_list = soup.select('section.nm-collections-row')
# 이렇게 했던 이유는 단순히 'section'이라고 하면, 길이가 24개쯤 되었고 그 말인즉슨 엄한곳의 정보까지
# 가져올 수가 있었다. 그렇게되면 엄한것을 가져오는게 문제가 아니라, 정보가 꼬여서 반복문등의 활용을 할 수 없게 된다.
# 따라서 약간 더 세부적으로 section에 클래스명까지 붙여서 봤다.
# 갯수가 다름을 알수있었던 이유는, section을 일일이 세어보았다. (수가 많지 않으니)

# 단계 2
len(section_list) # 16
section_list # 이거는 어마무지하게 자료가 나왔다.

# 단계 3
# 어마무지하게 나오던 자료 중에서 내가 필요한 정보는 title이고 해당되는 태그는 h2였다.

# 여기의 이 개념이 정말 중요했었는데, 기존에는 위를 바라보며 상위의, 상위의 부모태그, 조상태그를 찾아갔었지만

# 여기서는 실질적으로 section이라는 태그에 귀속된 다양한 정보와 다양한 태그 중에서 즉, 자식역할을 하는 h2를

# 찾아주는 것이였어서 더욱 의의가 있었다.


# 각 섹션안에도 많은 수의 제목들이 있으니 우선은 테스트를 위해 0번 리스트 부터 지정해주자
section = section_list[0]('h2')
# 이렇게 해주면 많던 자료는 온데간데 없고
# [<h2 class="nm-collections-row-name" data-uia="collections-row-title">넷플릭스 인기 콘텐츠</h2>]
# 라고 나온다.

# 단계4
# section으로 지정해준것에 대해서 len 값을 돌려보면 값이 1개다 즉 인덱스는 0이다.
section_title = section[0].text

# 결과값
넷플릭스 인기 콘텐츠

 

================================

여담이지만, 위의 과정을 거친 후에 쭉 뽑아주려면

 

for i in section_list:
    title = i.select('h2')[0].text
    print(title)

 

이렇게 처리해주는 것으로 마무리 했다.