[Python]파이썬 BeautifulSoup 사용법 : 크롤링 Crawling, 데이터 파싱
https://iridescent-zeal.tistory.com/134?category=1267485
[Python]파이썬 requests 라이브러리 정리하기
[웹 크롤링 Web Crawling] 웹 크롤링은 웹 크롤러(Web Crawler, 웹 페이지의 데이터를 모아주는 소프트웨어)를 사용하여 웹 페이지의 데이터를 추출해내는 것입니다. HTML 페이지를 가져와서, HTML/CSS
iridescent-zeal.tistory.com
[ BeautifulSoup 라이브러리 ]
HTML, XML, JSON 등 파일의 구문을 분석하는 모듈로 웹 페이지를 표현하는 HTML을 분석하기 위해 사용하는 라이브러리입니다.
즉, 우리가 가져온 데이터를 의미있는 데이터로 바꾸어주는 역할을 합니다.
[ 설치 및 import ]
- 터미널에서 설치
> pip install beautifulsoup4
- import
from bs4 import BeautifulSoup
[ BeautifulSoup 객체 만들기 ]
BeautifulSoup(데이터, 파싱방법)은 우리가 가져온 데이터를 해당 파싱방법을 통해 데이터를 파싱하여 BeautifulSoup 객체에 넣어 반환해줍니다.
html.parser는 파이썬 내장 파서로, 파싱방법을 별도로 작성하지 않아도 BeautifulSoup 객체가 자동으로 "html.parser"를 작동시킵니다.
#soup = BeautifulSoup(데이터, 파싱방법)
response = requests.get("https://google.com")
soup = BeautifulSoup(response.text, "html.parser")
[ 데이터 추출하기 ]
- 태그 하나 추출
soup.find("태그 이름") 또는 soup.태그이름 은 해당 태그를 가진 요소 중, 최상단에 있는 요소 하나만 추출해줍니다.
print(soup.find('a'))
#또는 print(soup.a)
- 태그 여러개 추출
soup.find_all("태그 이름") 은 해당 태그를 가진 모든 요소를 배열 형태로 추출해줍니다.
print(soup.find_all('a'))
- 해당 태그의 클래스 이름으로 추출
soup.find_all('태그 이름', '클래스 이름')은 해당 태그의 클래스 이름을 가진 요소를 추출해줍니다.
(find는 최상단 요소 하나만)
print(soup.find_all('a', 'gb1'))
- 해당 태그의 아이디 이름으로 추출
soup.find('태그이름', {'id' : '아이디 이름'}) 은 해당 태그의 아이디 이름으로 요소를 추출해줍니다.
print(soup.find('img', {'id': 'hplogo'}))
- 문서의 title 추출
soup.title 은 해당 html 문서의 <title> 태그를 추출해줍니다.
print(soup.title)
추가적으로 soup.title.string 은 <title> 태그 내의 컨텐츠를 추출해줍니다.
print(soup.title.string)
- text 추출하기
데이터.text는 find 또는 find_all로 찾은 태그의 컨텐츠를 추출해줍니다.
el = soup.find('div')
print(el.text)