웹페이지의 테이블을 pandas 및 Beautifulsoup을 통한 web crawling

최민석·2022년 10월 10일
1

data science

목록 보기
11/12

이전 포스트의 웹페이지가 서비스가 종료가 되었는지 파일을 불러올 수 없었다.

하는 수 없이 대안을 찾기 시작했고, 네이버의 환율창에 비슷한 테이블을 발견할 수 있었다.

이번엔 웹페이지의 테이블을 가져오는 방식을 통하여 pandas로 테이블을 만들어 보자.

필요한 라이브러리와 웹페이지를 불러오자


import pandas as pd
import requests
from bs4 import BeautifulSoup

#네이버 환율테이블 페이지 접근
url = 'https://finance.naver.com/marketindex/exchangeList.naver'
page = requests.get(url)

웹페이지의 여러 tag부분을 발췌해야 하기 때문에 BeautifulSoup을 통하여 웹페이지의 tag들을 깔끔하게 불러오는 방식을 진행하였다.

soup = BeautifulSoup(page.content, 'lxml')

웹페이지에서 개발자 도구(F12)를 열어서 페이지 구조를 확인할 수 있으니 참고하면서 가져올 범위를 찾아보자

가져올 table tag를 BeautifulSoup로 찾아서 선택해보자

#table tag 사용 범위 확인
text1 = soup.find('table')

# 현재 페이지에서 table 태그 모두 선택하기
table1 = soup.select('table')

# 하나의 테이블 태그 선택하기
table = tables[0]

pandas의 read_html을 사용하여 table을 간편하게 가져올 수 있다.

# 판다스의 read_html 로 테이블 정보 읽기
table_df_list = pd.read_html(str(table1))

# 데이터프레임 선택하기
table_df = table_df_list[0]
table_df


이렇게 만든 table을 excel로 저장하거나 다른 곳에 보내어 사용할 수 있다.

profile
학습기록

0개의 댓글