파이썬에서 BeautifulSoup 의 find

Posted by 두두오빠
2018. 8. 19. 19:03 프로그래밍/파이썬 Python

BeautifulSoup을 사용하면서 find를 경우에 따라서 사용하고 있다


한번쯤 정리를 해보고 넘어가는 것이 기억에도 남고, 지속적으로 내 자산이 될 것이다




find 가 하는일


find 는 해당인자를 찾는 역할을 한다


아래 소스로는, 첫번째의 <table>      -------------------    </table>   이 나오는 것을 확인할 수 있다



    soup = BeautifulSoup(html, 'html.parser')

    content_table = soup.find('table')

    

    print(content_table)

    



다음을 통해 추가적으로 확인해보자


    data_result = soup.find('table')


    f2data = data_result.find('tr')
    print(f2data)


    f2data = data_result.find("tr")

    print(f2data)



find안의 문자에 따옴표를 한개를 사용해도, 두개를 사용해도, 결과는 같다.


처음으로 존재하는 다음 구문을 가져온다

<tr>    </tr>  




쫌 더 확장을 해보자


스크립트에는 속성을 가진 것들이 있다


지금까지의 방법으로,   <tr class= "first"> 이런 구문을 가져오기 위해서 테스트를 해보았다



    f2data = data_result.find('tr class')

    print(f2data)



결과는 None으로 찍힌다


단순히 문자를 찾는 개념이라면 'tr class' 로 검색했을때 어떤 값이라도 나왔어야 하는데


단순한 생각으로 원하는 결과를 얻지는 못했다




그럼.. find로는 각 속성까지 찾지 못하는 걸까?


아니다 


다음과 같은 방법이 있다


    f2data = data_result.find("tr", {"class":"first"})

    print(f2data)


원하는 다음의 구문을 가져오는 것을 성공하였다


<tr class= "first">  ---------------   </tr>