Programming
파이썬 BeautifulSoup로 블로그 제목만 출력하기 (텍스트 마이닝)
김봉철
2021. 11. 6. 19:27
0. BeautifulSoup란?
HTML 문서를 분석할 수 있는 파이썬 라이브러리이다. 웹사이트는 HTML이란 언어로 이루어진 문서이고, 웹 브라우저는 이 문서의 뷰어라고 할 수 있다.
1. 설치법
추가 예정
2. 사용법
A) 파이썬 requests 라이브러리의 .get 함수를 이용해 웹사이트에 요청을 보낸다.
B) .text 함수를 이용해 웹사이트의 HTML을 추출한다. (string)
C) B에서 받아온 소스를 beautifulsoup가 처리할 수 있는 형식으로 변환한다.
D) .select 함수를 이용해 필요한 코드를 추출한다. (list)
E) .string 함수를 이용해 코드에서 불필요한 태그를 제거한다.
예시)
코드
import requests as re
#requests 라이브러리를 re로 호출
from bs4 import BeautifulSoup as bs
#bs4에서 Beautifulsoup만 bs로 호출
url = "https://bongchuls.tistory.com"
#html을 추출할 url지정
req = re.get(url)
#A) url에 요청보내기.
#type(req) >>> <class 'requests.models.Response'>
txt = req.text
#B) 전체 html 추출.
#type(txt) >>> <class 'string'>
html = bs(txt, 'html.parser')
#C) Beautifulsoup에서 처리할 수 있는 형식으로 변환.
#type(html) >>> <class 'bs4.BeautifulSoup'>
tag = html.select('.title')
#D) 전체에서 title 클래스를 가진 코드만 추출.
#type(tag) >>> <class 'bs4.element.ResultSet'>
#인데, List 자료형이다.
for n in range(len(tag)):
print(tag[n].string)
#리스트 tag의 크기만큼 반복.
#E) 불필요한 태그는 제거하고 필요한 텍스트만 추출.
출력
파이썬 단어 빈도수 카운트 알고리즘 (자세한 설명)
오목 프로그램 (미완)
Codeup/ 기초 100제/ 6088/ 주사위 2개 던지기/ 해설
C언어와 Python의 '변수 선언' 시 차이점
시작
(2021-11-06. 19:15 (GMT +9) 기준)
잡담
- 텍스트 마이닝, 데이터 마이닝, 웹 스크래핑, 웹 크롤링 등 부르는 이름이 많다. 내가 하는 이 작업을 정확히 뭐라고 부르는 지 모르겠다.
- .select 함수의 설명이 부족하다. 나중에 내용을 추가하던가, 게시글을 올리던가 할 예정이다. html의 구조까지 설명해야 할텐데 내용이 너무 많을 것 같아 걱정이다.
- 항상 type() 주석이 많다. 나는 자료가 어떻게 처리되고, 어떻게 변하는지 알고 있어야 확실히 이해한 느낌이다. 자료형때문에 에러나는 경우도 많고... 읽는 입장에서 너무 거추장스럽지 않을까..
- 아직 게시물의 퀄리티나 정확성도 많이 부족한 것 같다. 형식도 들쑥날쑥이고... 그래도 내가 공부하며 헷갈렸던 부분을 정확히 짚고 있으니, 내 글이 도움이 됐으면 좋겠다.