[BeautifulSoup] 크롤링 환경 설정, 태그, 글자 추출

리냥·2023년 7월 23일
0

안녕하세요! 오늘은 크롤링 기초에 대해 정리하겠습니다.

1. BeautifulSoup 환경 구성하기

!pip install beautifulSoup4

먼저 beautifulSoup4을 설치합니다. 이후 bs4라는 패키지로부터 BeautifulSoup라는 모듈을 임포트합니다.
# bs4라는 패키지로부터 BeautifulSoup라는 모듈을 임포트
from bs4 import BeautifulSoup

html = """
<html>
    <body>
        <h1 id='title'>[1]크롤링이란?</h1>
        <p class='cssstyle'>웹페이지에서 필요한 데이터를 추출하는 것</p>
        <p id='body' align='center'>파이썬을 중심으로 다양한 웹크롤링 기술 발달</p>
        <a href = 'http://www.facebook.com'> 바로가기 </a>
        <ul id="aladin_list">
            <li class="cssstyle" id='start'>[국내도서]신나는 파이썬</li>
            <li class="course" id='start'>[국내도서] 혼자 공부하는 파이썬</li>
            <li class="course" id='end'><a href="https://www.aladin.co.kr">[국내도서] Effective Python 2nd 이펙티브 파이썬 : 파이썬 코딩의 기술 </a></li>
        </ul>
        <img src='https://upload.wikimedia.org/wikipedia/commons/thumb/b/b0/Dumbo-hires_%28cropped%29.jpg/330px-Dumbo-hires_%28cropped%29.jpg'>
    </body>
</html>
"""

html을 가정했을때 아래와 같이 지정해줍니다.

# BeautifulSoup 인스턴스 생성. 두번째 매개변수는 분석할 분석기(parser)의 종류.
soup = BeautifulSoup(html, 'html.parser')

2. 태그 선택

2-1. 태그 이름이 tag1인 html요소를 리스트 형태로 모두 반환한다.

soup.select('tag1')

2-2. 태그 이름이 tag1인html요소중 첫번째 요소만 반환한다.

soup.select_one('tag1')

# <body> 태그를 입력
soup.select('body')

soup.select()

# 첫 번째 p 태그 요소 반환
soup.select_one('p')

soup.select_one()


2-3 하위 태그 선택


바로 아래 자식요소만 선택합니다.
'>' 를 사용합니다.

soup.select('tag1 > tag2')

길이가 너무 긴 경우 중간 생략하고 하위 요소를 선택합니다.
공백을 사용합니다.

soup.select('tag1 tag2')

soup.select('body>ul>li')


2-4. css class이름으로 검색


클래스이름'** 으로 검색한다.
class이름 앞에 점(.)을 사용해야 한다.

soup.select('.class1')
soup.select_one('.class1')

#둘을 구별하려면 더 자세히
soup.select('p.cssstyle')

2-5. id 이름으로 검색

#id이름** 으로 검색
id 값은 중복되지 않은 유일한 값이다.
찾고자 하는 태그에 id값이 있다면 더 쉽게 검색 가능하다.

soup.select('#id1')
soup.selec_one('#id1')

#id는 중요한포인트에만 지정, 그래서 유일한 값이기에 id가 있으면 바로 접근해야함

soup.select('li#end')

3. 태그 문자 추출


3-1. 태그사이의 문자 추출


태그사이의 문자열 추출 :.get_text() 또는 .text 를 사용
soup.select_one('p.cssstyle').get_text()
soup.select_one('p.cssstyle').text


3-2 태그의 속성값 가져오기


이미지나 하이퍼링크에 대한 정보는 태그의 속성에 들어있다. 태그의 속성값 추출해야한다.


item['속성이름'], item.get('속성이름')


#attribute 값 가져오기
atag['href']

감사합니다!

profile
안녕하세요. 일로 인해 잠시 쉽니다 :)

0개의 댓글