[python] CSS 선택자로 스크레이핑

CSS : Web에서 디자인을 담당
Id : #으로 표현
class : .으로 표현
select_one() : css 선택자로요소하나의 선택자로 요소하나를 추출
select() : CSS선택자로 요소 여러개를 리스트로 추출


실행화면


코드

#BeautifulSoup import
from bs4 import BeautifulSoup

#html 더미데이터 삽입
html="""
<html><body>
    <div id="LecList">
        <h1>데이터과학</h1>
    </div>
    <div id ="lecture">
        <h1>빅데이터 분석 강좌</h1>
        <ul class="subject">
            <li>R언어 강좌</li>
            <li>머신러닝을 위한 데이터처리</li>
            <li>파이썬으로 익히는 딥러닝 이론</li>
        </ul>
    </div>
</body><html>
"""

#태그 저장
soup = BeautifulSoup(html,'html.parser')


h1 = soup.select_one("div#lecture > h1").string 
print("h1: ", h1)

select_one(): 하나의 값 추출

<div>태그의 클래스가 lecture인 태그 접근한 후에 그 아래의 h1태그 접근후 string타입으로 h1에 저장

h1값: 빅데이터 분석 강좌


subjects = soup.select("div#lecture > ul.subject > li") 
for li in subjects:                                    
    print("li: ", li.string)

select(): lecture아래의 subject 클래스안의 li태그 접근한값을 subjects에 리스트로 담음

for문으로 전체 출력


결과

h1: 빅데이터 분석 강좌
li: R언어 강좌
li: 머신러닝을 위한 데이터처리
li: 파이썬으로 익히는 딥러닝 이론

댓글

Designed by JB FACTORY