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

beautifulsoup netflex, pandas 웹스크래핑 후 엑셀 저장

by 다니엘의 개발 이야기 2022. 6. 24.
320x100

# 첫번째 셀

count = 0
result = []
for section in section_list:
    roop_list = section.select('li.nm-content-horizontal-row-item')
        
    for i in roop_list:
        section_title = section.select('h2')[0].text
        title = i.select('span')[1].text
        img = i.select('img')[0]['src']
        try:
            link =i.select('a')[0]['href']
        except:
            link = 'empty'
            
        # 모든 자료를 리스트화 시키려고 했더니 link가 걸리는 부분이였고, 딕셔너리 안에서의 예외처리는
        # 하는 방법을 못찾겠어서 강의듣고 습득했다.
        data = [section_title, title, img, link]
        result.append(data)
        count += 1

 

# 두번째 셀

# 모든 자료를 리스트화 시키려고 했더니 link가 걸리는 부분이였고, 딕셔너리 안에서의 예외처리는
# 하는 방법을 못찾겠어서 강의듣고 습득했다.
[
    [section_title, title, img, link]
]

 

# 세번째 셀

len(result)

 

# 네번째 셀

count

 

# 위와 같이 해줌으로써 result의 결과 값과 count로 연산된 값이 같은지 비교한다. (틀리면 문제가 있는거다)

 

# 다섯번째 셀

test = pd.DataFrame(result)

 

# 여섯번째 셀

test
# 나는 행(가로축을 의미하는 아래로 떨어지는 숫자)의 숫자를 1부터 시작하는걸로 바꿔주고 싶었고
# 열(세로축을 의미하는 옆으로 나열되어있는 숫자)의 숫자를 각각의 카테고리 명으로 변경원했는데 어떻게 하는지 모르겠다.

 

# 일곱번째 셀

test.columns = {
    0 : '카테고리',
    1 : '제목',
    2 : '이미지링크',
    3 : '작품 링크'
}

# 이렇게 시도해봤으나 바뀐건 없었다.

 

# 여덟번째 셀

# 이러니깐 되더라.
test.columns = ['카테고리', '제목', '이미지링크', '작품링크']
# 근데 기존엔 테스트해보는것처럼 replace=True를 안해주면 변화가 없던 기능이 있었던것같은데
# 이건 하는대로 바뀐다.

 

# 아홉번째 셀

# 엑셀로 저장할건데, 맨 앞의 인덱스는 저장하지 말아줘
test.to_excel('엑셀파일저장하기.xlsx', index = False)
# test.to_excel('./엑셀파일저장하기.xlsx', index = False)
# 이 두가지는 같다.

300x250