일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 잔
- 컴퓨터공학 #자료구조 #스택 #c++ #알고리즘 #백준문제풀이
- BOJ #컴퓨터공학 #C++ #알고리즘 #자료구조
- HTML #CSS
- 컴퓨터공학 #c #c언어 #문자열입력
- 컴퓨터공학 #Java #자바 #클래스 #객체 #인스턴스
- Today
- Total
영벨롭 개발 일지
[Python]파이썬 BeautifulSoup 사용법 : 크롤링 Crawling, 데이터 파싱 본문
[Python]파이썬 BeautifulSoup 사용법 : 크롤링 Crawling, 데이터 파싱
영벨롭 2022. 4. 22. 16:52https://iridescent-zeal.tistory.com/134?category=1267485
[ 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)
'Programming Language > Python' 카테고리의 다른 글
[Python]파이썬으로 이메일 보내기 - SMTP (0) | 2022.05.03 |
---|---|
[Python]파이썬의 자료형: dict 딕셔너리 (0) | 2022.04.25 |
[Python]파이썬 requests 라이브러리 정리하기 (0) | 2022.04.14 |
[Python] 파이썬의 자료형: 리스트 list (0) | 2022.04.13 |
[Python]for문 사용하기: in 리스트, in range(), in enumerate() (0) | 2022.04.13 |