본문 바로가기

BLOG/웹크롤링

[웹크롤링] 원하는 태그 찾기 + 텍스트 추출 - find

웹 크롤링을 할 때, 가장 많이 사용하는 함수 중 하나가 바로 find() 함수인데요,

아래 코드를 보면서 find() 함수에 대해 살펴보도록 하겠습니다.

 

 

1. find() : 태그 찾기

먼저, 아래와 같은 html이 있다고 가정해보겠습니다.

 

html1='''
           <html lang="en">
               <head>
                    <a >example</a>
               </head>
               <body>
                    <div>hello!</div>
               </body>
          </html> '''

 

위 html에서 만약 'hello!' 라는 텍스트를 찾고 싶을 때, 이 텍스트가 있는 태그를 알아야 하는데요, 해당 텍스트는 <div> 태그에 있는 것을 알 수 있습니다. 이제 이 텍스트를 찾기 위해 find() 함수를 사용하면 되는데요, find 함수 안에 해당 태그 명을 입력하면 됩니다.

 

soup = BeautifulSoup(html1, 'html.parser') #html.parser는 html 분석 도구
soup.find('div')

 

첫 번째 줄 코드는 html 분석 도구를 설정한 코드이며, 두 번째 줄 코드에서 find() 함수를 사용했습니다.

위 코드를 실행하면 다음과 같이 출력됩니다.

 

<div>hello!</div>

 

출력 결과, hello! 라는 텍스트가 포함된 html 코드가 출력되었음을 확인할 수 있습니다.

 

 

2. string : 텍스트 추출하기

한편, 위에서는 <div> 태그가 포함되어 출력되었는데요, 이러한 태그를 없애고 싶다면 텍스트만 추출해주는 string 모듈을 함께 입력하면 됩니다.

 

soup.find('div').string

 

위와 같이 코드를 입력한 뒤 실행하면, 아래와 같이 'hello!' 텍스트만 추출되어서 나오는 것을 확인할 수 있답니다.

 

'hello!'