Programming/Python
BeautifulSoup을 이용한 태그의 특정 텍스트, 속성 값 불러오기
패치#노트
2021. 8. 5. 12:07
728x90
반응형
안녕하세요.
제목 그대로 크롤링을 하다가 보면 다양한 값들을 읽어와야 하는데요.
그중에 특정 텍스트나 속성 값을 불러오는 방법에 대해서 간략히 알아보도록 하겠습니다.
[예시]
from bs4 import BeautifulSoup
html_source = '''
<div class="Top div class 입니다.">
<div class="Second div class 입니다.">
<ul class="ul 입니다.">
<li data-sequence='12345645'>
<a id="link" href="특정 링크">부자되기 프로젝트!!!!!</a></li>
</ul>
</div>
</div>
'''
soup = BeautifulSoup(html_source, 'html.parser')
a_tag = soup.find_all('a', attrs={"href" : "특정 링크"})
# 태그 불러오기
print('Soup 내용 그대로 불러오기', a_tag)
# 태그내 텍스트 불러오기
print('텍스 내용 불러오기', a_tag[0].text)
# attribute 값 얻어오기
li_tag = soup.find_all('li')
print(li_tag) # 리스트 형태로 반환
attribute = li_tag[0].attrs #리스트의 0 번째 태그
print('attribute 값 얻어오기',attribute)
print('특정 attribute 값 얻오기', attribute['data-sequence'])
[결과 값]
Soup 내용 그대로 불러오기 [<a href="특정 링크" id="link">부자되기 프로젝트!!!!!</a>]
텍스 내용 불러오기 부자되기 프로젝트!!!!!
[<li data-sequence="12345645">
<a href="특정 링크" id="link">부자되기 프로젝트!!!!!</a></li>]
attribute 값 얻어오기 {'data-sequence': '12345645'}
특정 attribute 값 얻오기 12345645
soup의 find_all은 보통 리스트형태로 반환됩니다.
리스트로 감싸여 있기 때문에 인덱스를 지정하고 텍스트 불러오기나, attribute 값들을 가지고 오면 됩니다.
감사합니다.
728x90
반응형