WalkingBo의 걷는 정보

파이썬 크롤링 - 뷰티풀숩 기초 본문

IT/파이썬 및 장고

파이썬 크롤링 - 뷰티풀숩 기초

walkingbo 2020. 5. 20. 11:16

앞선 포스트에서는 HTML의 모든 내용을 출력해보았습니다. 하지만 우리가 크롤링하는 목적은 나에게 유의미한 데이터를 출력하기 위해서입니다. 그래서 HTML의 모든 내용 중 필요한 부분을 찾아서 출력하려면 BeautifulSoup을 이용하는 것이 편리합니다. 

 

1. BeautifulSoup 시작하기

import requests

from bs4 import BeautifulSoup

webpage = requests.get("https://news.naver.com/")

soup = BeautifulSoup(webpage.content,"html.parser")

print(soup)

 

먼저 from bs4 import BeautifulSoup로 라이브러리를 불러와 줍니다. 그리고 웹페이지를 요청하고 받아온 문서를. content로 지정합니다. 그리고 뒤에 있는 html.parser는 파싱 방법입니다. 이 외에도 여러 가지 파싱 방법이 있습니다. 

 

결과적으로 다음과 같이 출력됩니다. 하지만 아직도 원하는 데이터를 선별하지는 못했습니다. 우리가 원하는 부분을 얻기 위해선, html의 문서를 잘 읽고 그 부분의 태그를 찾아주는 것이 쉬운 방법 중 하나입니다.

 

2. 태그(Tag) 탐색하기

먼저 a 태그만 찾아서 출력해보겠습니다. 아래와 같이 입력하면 첫 번째 태그를 찾아줍니다.

 

print(soup.a)

<a href="#lnb" tabindex="1"><span>메인 메뉴로 바로가기</span></a>

 

다음과 같이 써주면 태그 안의 내용만을 가져옵니다. 

 

print(soup.p.string)

메인 메뉴로 바로가기

 

해당 태그의 내용은 모두 가져오고 싶다면 find_all()이라는 것을 사용합니다. 예를 들어서 print(soup.find_all("a")) 를 입력하고 실행하면 해당 HTML 문서 내의 a 태그는 모두 가져와서 출력하게 됩니다. 

 

3. 웹사이트 구조 (feat. 개발자 도구)

위와 같이 텍스트를 뽑아서 태그를 보면서 웹사이트 구조를 확인하는 건 내용이 너무 많다면 힘든 일이 될 수 있습니다. 그래서 구조를 파악하기 위해서 개발자 도구를 이용하는 것이 좋습니다. 거의 모든 웹 브라우저는 개발자 도구를 사용할 수 있도록 되어 있고 크롬의 경우 F12를 누르면 개발자 도구 창이 표출됩니다. 그리고 내가 얻고 싶은 데이터 부분에 마우스를 올려놓으면 HTML 문서에서 해당하는 부분을 보여줍니다. 이렇게 활용하시면 더욱 편리하게 크롤링을 하실 수 있습니다.

 

다음 포스트에서는 BeautifulSoup의 여러 가지 방법을 통해서 데이터를 가져오는 법을 계속해서 작성해 보도록 하겠습니다.

 

 

'IT > 파이썬 및 장고' 카테고리의 다른 글

파이썬 제어문 - if  (0) 2020.05.25
파이썬 크롤링 - 뷰티풀숩 select  (3) 2020.05.21
파이썬 크롤링(웹)-기초  (1) 2020.05.19
파이썬 - 변수  (0) 2020.05.17
파이썬 문자열 추출  (0) 2020.05.15
Comments