크롤링 - 다음영화 정보 수집
본문 바로가기
파이썬(Python)/크롤링 연습

크롤링 - 다음영화 정보 수집

by 레아დ 2022. 9. 21.

크롤링 수집하는 방법이 선생님들 마다 차이가 있음
그래서 처음에 당황했지

수업은 주피터 사용하고 이런저런 복습은 구글 코랩을 이용한다
(왜 이러는지 모르지만.. 미춰버리겠다.)

주피터랑 코랩이랑 환경이 다르니까 ㅋㅋㅋㅋ 왜 여기선 실행되는데
저기는 안되냐... 하면서
쥐어짜매는중 ㅋㅋㅋ 하지만 내가 선택했으니....


https://movie.daum.net/ranking/reservation

랭킹 | 다음영화

Daum영화에서 자세한 내용을 확인하세요!

movie.daum.net


네이버 영화 들어갔다가 안되서 다음영화로 돌아온건 안 비밀ㅋㅋㅋㅋㅋ

여기 정보를 수집해 보겠다.

# 함수 생성

# 요청함수
def getSource(site) :
    # 헤더 정보 세팅
   
# 등등등 한거 많음
# 중요한건 밑에 부분이니 밑에 부분만 입력 !

해당 사이트에서
f12를 누르면 이렇게 정보들이 나오고 ㅋㅋ
원하는 정보 위치값 얻어오면 된다.

# 2 - 1
# 한 페이지의 데이터를 수집해 저장하는 함수
def getData(source) :    
    # bs4 객체 생성
    soup = bs4.BeautifulSoup(source)
      # 영화 전체를 가져온다.
    li_list = soup.select('#mainContent > div > div.box_ranking > ol > li')
    
    for li_tag in li_list :
        # 항목 확인 후 주석 처리
        # print(li_tag)
        # print('---------------------------------------')

        # 3 - 2
        # 데이터 담을 딕셔너리 생성
        data_dict = {
        '영화제목' : [],
        '평점' : [],
        '예매율' : [],
        '개봉일' : [],
        '영화설명' : [],
        '관람등급' : []
        }

        # 영화 제목
        # li_list 중복 부분 삭제 하기 
        a1 = li_tag.select_one('div > div.thumb_cont > strong > a')
        data1 = getText(a1)

        # 영화 평점
        a2 = li_tag.select_one('div > div.thumb_cont > span.txt_append > span:nth-of-type(1) > span')
        data2 = getText(a2)

        # 예매율
        a3 = li_tag.select_one('div > div.thumb_cont > span.txt_append > span:nth-of-type(2) > span')
        data3 = getText(a3)

        # 개봉일
        a4 = li_tag.select_one('div > div.thumb_cont > span.txt_info > span')
        data4 = getText(a4)

        # 영화 정보
        a5 = li_tag.select_one('div > div.thumb_item > div.poster_info > a')
        data5 = getText(a5)

        # 관람 등급
        a6 = li_tag.select_one('div > div.thumb_item > div.poster_movie > span.txt_tag > span')
        data6 = getText(a6)        

        print(data1)
        print(data2)
        print(data3)
        print(data4)
        print(data5)
        print(data6)
        print('----------------------------')

        # 3 - 1
        # 데이터를 담는다.
        data_dict['영화제목'].append(data1)
        data_dict['평점'].append(data2)
        data_dict['예매율'].append(data3)
        data_dict['개봉일'].append(data4)
        data_dict['영화설명'].append(data5)
        data_dict['관람등급'].append(data6)

여기에서 !!!!!
주피터 노트북은 위치 경로에서 nth-child 이 부분 그대로 사용 되지만
코랩에서는 오류 생김
그래서 nth-child → nth-of-type 로 변경해야한다.
아 진짜 이거때매 엄청 검색질했네
그냥 주피터 쓰면 되는데 왜 코랩을 시작했을까 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

태그 문자열로 변환 해주고 나서 결론 !

촵 ~~~~~
근데 코랩에서 이걸 데이터프레임으로 저장이 되질 않는다.......
왜지.......다시 찾아봐야지
그치만 나는 지금 수리남을 시작했다고한다.........ㅋㅋㅋㅋㅋㅋㅋㅋ

728x90