카테고리 없음

python 크롤링 pandas , openpyxl 설치 및 사용 (sheetname index error)

Canyi 2022. 10. 6. 15:13

pip3 install pandas

 

pip3 install openpyxl

 

크롤링 하고싶은 사이트에 접속을 해서 마우스 우클릭 한다음 '페이지 소스 보기를 클릭한다.'

 

div태그 에서 class가 esg-entry-content인 값과 a태그에서  class가 eg-grant-element-0인 값을 조회하고 elements에 담아서 각각의 titles와 links라는 배열을 생성해  타이틀과 링크를 담는다.

import requests
from bs4 import BeautifulSoup as bs                # BeautifulSoup를 bs로 쓰겠다.
import pandas as pd

page = requests.get('https://library.gabia.com/')
soup =  bs(page.text,"html.parser")                 #데이터 구조화

# elements = soup.select('div.esg-entry-content a > span')     # a > span  index와 content 정렬?  
elements = soup.select('div.esg-entry-content a.eg-grant-element-0') 

titles = []
links = []

for index, element in enumerate(elements,1):          #index: data 개수
    titles.append(element.text)
    links.append(element.attrs['href'])				 #링크의 속성 첨부

df = pd.DataFrame()              #데이터 정량화
df['titles'] = titles            #titles를 titles라는 key값으로 넣겠다.
df['links'] = links

df.to_excel('./data.xlsx',sheet_name=['sheet1'])   sheet name을 생성할떄 배열에 넣지 말자...
#df.to_excel('./data.xlsx',sheet_name='sheet1')

 

 

raise IndexError("At least one sheet must be visible")
IndexError: At least one sheet must be visible

 

하나 이상의 시트가 포함 되어 있어야 된다고 에러가 뜬다..

 

하지만 data.xlsx 파일은 생성이 되었다..

df.to_excel('./data.xlsx',sheet_name=['sheet1'])

sheet_name = ['sheet1']  > sheet 이름을 정의 할 떄 배열에 넣어서 index error가 났다...

 

df.to_excel('./data.xlsx',sheet_name='sheet1')

  배열을 지웠음..

 

아무 에러도 나지 않았다.. 경로에 따라서 파일을 찾아간다...
데이터가 성공적으로 잘 들어감!!