728x90
반응형
SMALL
from bs4 import BeautifulSoup
html = '<td id="td1" class="title">' \
' <div class="tit3">' \
' <a href="/movie/bi/mi/basic.nhn?code=161242" title="범죄도시">범죄도시</a>' \
' </div>' \
'</td>'
# 1. 조회
def ex1():
# 위의 html 문자열에 대해서, html 파싱하겠다.
bs = BeautifulSoup(html, 'html.parser')
print(bs, type(bs))
# <td id="td1" class="title"><div class="tit3"><a href="/movie/bi/mi/basic.nhn?code=161242" title="범죄도시">범죄도시</a></div></td> <class 'bs4.BeautifulSoup'>
# a 태그 출력
tag = bs.a
print(tag, type(tag))
# <a href="/movie/bi/mi/basic.nhn?code=161242" title="범죄도시">범죄도시</a> <class 'bs4.element.Tag'>
# 2. Attribute 값 받아오기
def ex2():
bs = BeautifulSoup(html, 'html.parser')
tag = bs.td
print(tag['class']) # ['title'] => 리스트
print(tag['id']) # td1
print(tag.attrs) # {'id': 'td1', 'class': ['title']} => 딕셔너리
tag = bs.div
print(tag['id']) # id가 없으므로 error
# 3. Attribute 검색
def ex3():
bs = BeautifulSoup(html, 'html.parser')
# div 태그 중, class가 tit3인 태그를 찾는다.
tag = bs.find('div', attrs={'class': 'tit3'})
print(tag) # <div class="tit3"> <a href="/movie/bi/mi/basic.nhn?code=161242" title="범죄도시">범죄도시</a> </div>
tag = bs.find('div')
print(tag) # <div class="tit3"> <a href="/movie/bi/mi/basic.nhn?code=161242" title="범죄도시">범죄도시</a> </div>
# 없는 태그를 조회할 경우
tag = bs.find('td', attrs={'class': 'not_exist'})
print(tag) # None
# 전체 태그에 대해 title이 범죄도시인 태그를 찾는다.
tag = bs.find(attrs={'title': '범죄도시'})
print(tag) # <a href="/movie/bi/mi/basic.nhn?code=161242" title="범죄도시">범죄도시</a>
# 4. select(), content() 메서드
def ex4():
bs = BeautifulSoup(html, 'html.parser')
# CSS 처럼 셀렉터를 지정할 수 있다.
tag = bs.select("td div a")[0]
print(tag) # <a href="/movie/bi/mi/basic.nhn?code=161242" title="범죄도시">범죄도시</a>
text = tag.contents[0]
print(text) # 범죄도시
# 5. extract() 메서드
def ex5():
bs = BeautifulSoup(html, 'html.parser')
tag = bs.select("td")[0]
print(tag) # <td class="title" id="td1"> <div class="tit3"> <a href="/movie/bi/mi/basic.nhn?code=161242" title="범죄도시">범죄도시</a> </div></td>
# div요소를 제거
div_elements = tag.find_all("div")
for div in div_elements:
div.extract()
print(tag) # <td class="title" id="td1"> </td>
'Python' 카테고리의 다른 글
Python 폴더 삭제후 재설치 for MAC (1) | 2024.05.29 |
---|---|
Python 실행파일 만들기 (0) | 2021.08.02 |
python + vscode = 이미지 크롤링-2(upgrade ver) (0) | 2021.08.02 |
python + vscode = 이미지 크롤링-2 (0) | 2021.08.02 |
python + vscode = 이미지 크롤링 (0) | 2021.07.30 |