2021. 8. 5. 12:07
BeautifulSoup을 이용한 태그의 특정 텍스트, 속성 값 불러오기 Programming/Python2021. 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
반응형
'Programming > Python' 카테고리의 다른 글
파이썬 캘린더 다음달 출력, calendar next month (1) | 2021.09.07 |
---|---|
판다스 데이터 프레임 각 셀 별 갯수 구하기, pandas cell length in dataframe (0) | 2021.08.20 |
파이썬 requests로 크롤링 안될 때 해볼 수 있는 방법 (0) | 2021.08.04 |
파이썬 스케쥴(일정) 라이브러리 Schedule (0) | 2021.08.04 |
(1292): Truncated incorrect DOUBLE value (0) | 2021.06.28 |