가이드라인

위키피디아에서 원하는 정보 가져오기

이번 수업에서는 파이썬을 사용해 위키피디아의 '인터넷' 페이지에서 데이터를 크롤링하는 방법을 알아보겠습니다.

특히 페이지의 제목본문에서 특정 단락들을 추출하고, 한글 데이터를 올바르게 처리하는 방법을 배웁니다.


웹 페이지 가져오기

먼저, requests 패키지를 사용해 위키피디아의 '인터넷' 페이지를 가져옵니다.

requests.get() 메서드를 사용해 해당 페이지의 HTML 소스를 불러옵니다.

웹 페이지 가져오기
import requests # URL 설정 url = 'https://ko.wikipedia.org/wiki/인터넷' # 웹 페이지 가져오기 response = requests.get(url) # 응답 상태 코드 확인 print("status_code:", response.status_code)
  • url 변수에 크롤링할 페이지의 주소를 저장합니다.

  • requests.get(url)은 해당 URL의 HTML 소스를 가져옵니다.

  • response.status_code는 요청이 성공했는지 확인하는 데 사용됩니다. 상태 코드 200은 요청이 성공했음을 의미합니다.


HTML 파싱 및 제목 추출

HTML을 파싱하고, 페이지의 제목을 추출합니다.

BeautifulSoup을 사용해 HTML 구조를 분석합니다.

HTML 파싱 및 제목 추출
from bs4 import BeautifulSoup # HTML 파싱 soup = BeautifulSoup(response.text, 'html.parser') # 페이지 제목 가져오기 title = soup.find('h1', id='firstHeading').text print("title:", title)
  • BeautifulSoup(response.text, 'html.parser')는 HTML 소스를 파싱합니다.

  • soup.find('h1', id='firstHeading').text는 페이지의 제목을 추출합니다.


본문 내용 추출

이제 본문 내용에서 <p> 태그를 모두 가져와, 그 중 첫 5개의 단락을 추출합니다.

본문 내용 추출
# 본문 내용 중 <p> 태그들 모두 가져오기 all_paragraphs = soup.find('div', class_='mw-parser-output').find_all('p') # 첫 5개의 <p> 태그만 선택하기 paragraphs = all_paragraphs[:5] # 추출한 단락들을 하나의 텍스트로 합치기 content = "\n".join([p.text for p in paragraphs])
  • soup.find('div', class_='mw-parser-output').find_all('p')는 본문 내 모든 <p> 태그를 가져옵니다.

  • paragraphs = all_paragraphs[:5]는 첫 5개의 <p> 태그만 선택합니다.

  • "\n".join([p.text for p in paragraphs])는 선택한 단락들을 하나의 텍스트로 합칩니다.


한글 인코딩 문제 해결 및 출력

크롤링한 한글 데이터를 제대로 출력하기 위해 인코딩(Encoding, 문자열을 바이트로 변환) 문제를 해결합니다.

한글 인코딩 문제 해결
# 한글 인코딩 문제 해결 print("content:", content.encode('utf-8').decode('utf-8'))
  • content.encode('utf-8').decode('utf-8')는 출력되는 한글 데이터가 제대로 출력되도록 합니다.

인코딩(encode)는 문자열을 바이트(byte, 0과 1로 이루어진 데이터)로 변환하고, 디코딩(decode)은 바이트를 문자열로 변환합니다.

이제 코드를 실행하면 위키피디아 '인터넷' 페이지의 제목과 본문 내용이 출력됩니다.

Mission
0 / 1

아래 빈칸에 들어갈 가장 적절한 내용은 무엇일까요?

은 특정 URL의 HTML 소스를 불러올 때 사용합니다.
requests.get()
BeautifulSoup()
urllib.request()
selenium.webdriver()

가이드라인

AI 튜터

배포

디자인

업로드

수업 노트

즐겨찾기

도움말

코드 에디터

코드 실행
코드 생성

실행 결과