Data Analysis/web crawling
[Crawling] 클래스 속성을 이용해 태그 가져오기 / find, limit, extract
아이스베어 :)
2021. 6. 8. 13:10
728x90
반응형
html = """<html> <head><title>test site</title></head> <body> <p>test1</p><p class="d">test2</p><p class="c">test3</p></p> </body></html>"""
soup = BeautifulSoup(html,'lxml')
print(soup.find_all('p',class_='d'))
print(soup.find_all('p',class_='c'))
기존 속성(attribute) class와 구분하기 위해 _가 추가되었다.
print(soup.find_all('p', text='test1'))
print(soup.find_all('p', text='t'))
하나의 요소만 가져오는 find
print(soup.find('p'))
제한을 가할때 limit 사용
print(soup.find_all('p', limit=1)[0])
print(soup.find_all('p', limit=2))
select () 함수를 이용하면 find_all() 처럼 리스트로 반환한다. 하지만 select()는 css 셀렉터를 활용하여 원하는 요소에 접근할 수 있다.
html = """<html> <head><title>test site</title></head> <body> <p id="i" class="a">test1</p><p class="d">test2</p><p class="d">test3</p></p> <a>a tag</a> <b>b tag</b></body></html>"""
soup = BeautifulSoup(html,'lxml')
print(soup.select('.d'))
print(soup.select('p.d'))
print(soup.select('#i'))
print(soup.select('p#i'))
태그를 지우는 extract
a=soup.body.extract()
a
soup = BeautifulSoup(html,'lxml')
for tag in soup.select('p'):
print(tag.extract())
print('제거완료')
print(soup)
728x90
반응형