웹 크롤링을 이용하거나 정제된 텍스트를 구하여 필요한 데이터를 수집할 수 있습니다.
구글 코랩에서 웹 크롤링 작업을 수행하기 위한 대표적인 라이브러리를 소개하겠습니다. (라이브러리는 특정 기능을 수행하는 여러 모듈을 모아놓은 패키지를 의미합니다.)
웹 크롤링을 통해 수집한 데이터를 구글 코랩에서 불러오는 과정을 실습해 보겠습니다.
【실습】 BeautifulSoup을 사용하여 ilibrary.ru에서 안톤 체호프의 소설 『ДАМА С СОБАЧКОЙ』 의 본문을 가져오세요. (https://ilibrary.ru/text/976/p.1/index.html)
실습에서는 BeautifulSoup4 라이브러리를 이용하겠습니다. (BeautifulSoup4는 BeautifulSoup의 최신 버전입니다.)
먼저 웹크롤링을 위한 라이브러리를 설치합니다.
import requests
!pip install beautifulsoup4
from bs4 import BeautifulSoup
html 문서를 가져오기 위해 requests를 사용하고, 가져온 문서에서 필요한 데이터를 추출하기 위해 beautifulsoup4를 사용하겠습니다. requests 라이브러리는 구글 코랩에 기본적으로 설치되어 있으므로 추가로 설치할 필요 없이 바로 사용할 수 있습니다. requests 라이브러리를 불러오기 위해 import 모듈을 합니다. beautifulsoup4 라이브러리를 설치합니다. 설치가 완료된 후에는 BeautifulSoup을 import하여 사용할 수 있습니다.
웹페이지에서 HTML 문서를 읽어와 변수에 저장하고, HTML 문서를 파싱하겠습니다. html.parser":html 문서를 파이썬 객체로 변환시켜 줍니다.
url = '<https://ilibrary.ru/text/976/p.1/index.html>'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
파싱한 HTML 문서에서 필요한 자료를 찾습니다. 즉, 가지고 오고 싶은 내용의 '첫 부분'의 HTML 태그를 찾습니다.
z_tags = soup.find_all('z')
text_content = [z_tag.get_text().strip() for z_tag in z_tags if z_tag.get_text().strip()]
웹페이지에서 우클릭 후 페이지 소스 보기(View Page Source)를 선택합니다.
텍스트 구조를 알 수 있는 코드를 확인할 수 있습니다. 우리는 소설의 본문만 가져올 것이므로 본문이 시작하는 지점의 태그를 확인합니다.
<z> 태그 안에 있는 내용을 가져오도록 요청한 후, 텍스트만 추출합니다.