2021년 2월 28일 일요일

파이썬에서 특정 인터넷 사이트 페이지 내용을 가져오는 방법 (웹크롤링)

 

파이썬은 여러가지 패키지들이 있어 개발자가 구현하기 원하는 기능들을 쉽게 구현해줄 수 있도록 해줍니다.

 

아래 소스는 특정 인터넷 사이트의 url의 페이지 내용을 가져올 수 있도록 해줍니다.

 

import requests

from bs4 import BeautifulSoup

 

# 가져오기 원하는 url 주소

url = "https://www.naver.com"

 

response = requests.get (url)

 

if response.status_code == 200:   # 에러가 발생되지 않으면

    html = response.text

    soup = BeautifulSoup (html, 'html.parser')

    print (soup)

 

위에서 “requests.get”이나 “BeuatifulSoup”requests 패키지와 beuatifulsoup4 패키지에서 지원되는 함수로서 파이썬에 설치가 되어 있어야 사용할 수 있는데, 만약 설치가 되어 있지 않다면

 

pip install requests

pip install bueatifulsoup4

 

위의 명령을 명령 프롬프트 창에서 실행시키면 설치가 됩니다.

 

위의 코드를 실행시키면 Naver 홈페이지의 내용이 출력이 됩니다.

 

아시다시피 Naver 홈페이지 내용은 엄청난 양의 html 페이지로 일일이 보여드릴 수가 없네요.

 

beuatifulsoup4 패키지는 다양한 함수를 이용해서 가져온 html 페이지 내용을 처리할 수 있도록 해줍니다.

 

"print (soup)" 대신 "print (soup.title)"을 실행시키면 가져온 페이지의 title 부분만 추출해서 보여줄 수 있습니다.

 

D:\MyPyWork\sample1>python test1.py

<title>NAVER</title>

 

"print (soup)" 대신 "print (soup.title.string)"을 실행시키면 html title 태그를 뺀 내용만 보여줄 수 있습니다.

 

D:\MyPyWork\sample1>python test1.py

NAVER

 

"print (soup)" 대신 "print (soup.p)"을 실행시키면 html p 태그 부분만 추출하여 보여줄 수 있습니다.

 

D:\MyPyWork\sample1>python test1.py

<p class="dsc">선거 후보자에 대해 자동완성을 제공하지 않습니다.

<span class="dsc_inner">기간 : 4 2 0 ~ 4 15 18시까지</span>

<a class="link" href="#">자세히보기</a>

</p>

 

현재 보여준 것은 BeuatifulSoup 패키지로 할 수 있는 일부분만 보여준 것입니다.

댓글 없음:

댓글 쓰기