BeautifulSoup이란?
BeautifulSoup은 별도 설치가 필요한 라이브러리이다.
파이참을 사용한다면 아래 링크에서 설치하는 방법을 참고하길 바란다.
[Python Crawling] - 파이썬 크롤링 기본, requests와 re & BeautifulSoup 개념 및 설치
HTML 소스를 활용하여 특정 노드를 선택할 수 있는 라이브러리로 웹 크롤링을 하는 경우 기본적으로 사용하게 되는 라이브러리이다.
BeautifulSoup 라이브러리를 제대로 사용하기 위해서는 HTML 태그에 대한 기본 이해가 있어야 한다.
class, id 선택자, 태그 이름 정도는 구분하고 선택해서 사용할 줄 알아야 제대로 사용이 가능하다.
BeautifulSoup 예제 : 네이버
requests를 활용해서 네이버 html 소스를 가져와서 BeautifulSoup을 사용한다.
네이버 소스 코드 중에 아래와 같은 내용이 있어서 해당 부분의 정보를 가져오고자 한다.
<span class="naver_logo">네이버</span></a>
ㅇ 네이버 소스 코드 중 일부
<div class="special_bg">
<div class="area_flex">
<div class="area_logo">
<h1>
<a data-clk="top.logo" href="/"><span class="naver_logo">네이버</span></a>
</h1>
</div>
<div class="area_links">
<a data-clk="top.mkhome" href="http://help.naver.com/support/alias/contents2/naverhome/naverhome_1.naver" class="al_favorite">네이버를 시작페이지로<span class="al_ico_link"></span></a>
<span class="al_bar"></span>
<a data-clk="top.jrnaver" href="http://jr.naver.com" class="al_jr"><span class="blind">쥬니어네이버</span><span class="al_ico"></span></a>
<a data-clk="top.happybean" href="http://happybean.naver.com/main/SectionMain.nhn" class="al_happybean"><span class="blind">해피빈</span><span class="al_ico"></span></a>
</div>
<div id="search" class="search">
ㅇ 파이썬 코드
- requests를 활용하여 html 소스 코드를 가져온다.
- BeautifulSoup의 경우 html.content를 가져와야 처리가 가능하다.
- bs_html = BeautifulSoup(html.content,"html.parser")
- 위의 소스 코드는 HTML 소스 코드를 class, 태그로 선택 할 수 있는 형태로 만드는 코드이다
- 태그를 선택할 수 있는 형태로 만들었으면, find( )메소드로 원하는 태그를 선택한다.
- bs_html.find("태그 형태명",{"class":"클래스명"})
- 태그 형태명에는 p태그, h1태그, div 태그, span태그, 사용자 태그 등을 쓸 수 있다.
- class 부분은 id 등으로 변경 가능하다.
- 해당 태그 영역 부분이 선택되면 html 태그 소스까지 함께 보여지기 때문에 태그 안의 정보만 필요한 경우에는 .text를 붙여서 해당 문자 정보만 가져올 수 있다.
import requests
from bs4 import BeautifulSoup
url = "http://www.naver.com"
html = requests.get(url)
bs_html = BeautifulSoup(html.content,"html.parser")
naver_logo = bs_html.find("span",{"class":"naver_logo"})
print(naver_logo)
print(naver_logo.text)
(결과값)
반응형
'Python > Python Crawling' 카테고리의 다른 글
파이썬 에러, re와 BeautifulSoup error : html.parser type Error (0) | 2019.05.10 |
---|---|
파이썬 크롤링, 웹 이미지 저장(파일 저장 방법) (0) | 2019.05.09 |
파이썬 크롤링, re로 특정 정보 선택하기(간단한 정규표현식) (1) | 2019.05.09 |
파이썬 크롤링, requests로 네이버 웹 정보 가져오기 (0) | 2019.05.09 |
파이썬 크롤링 기본, 정규표현식이란? (0) | 2019.05.09 |
댓글