본문 바로가기
Python/Python크롤링

find( ), findAll( )

by hyun-am 2020. 9. 8.

find() 와 findAll()

 

findAll(tag, attributes, recursive, text, limit, keyword)

 

tag, attributes

.findAll("태그명", "dict형식의 속성")

 

recursive

recursive가 True이면 findAll 함수는 매개변수에 일치하는 태그를 찾아 자식, 자식의 자식까지 검색합니다.
recursive가 False이면 findAll 함수는 문서의 최상위 태그만 찾습니다.

기본값은 recursive가 True입니다.

text

text는 태그의 속성이 아니라 텍스트 콘텐츠가 일치하는 값을 찾습니다.

 

예를 들면 예시 페이지에서 text가 "the prince"라는 단어가 몇번 나왔는지 확인하려면

nameList = bsObj.findAll(text="the prince")
print(len(nameList))

이런 형식으로 코드를 입력하면 몇번 나왔는지 확인할 수 있습니다.

 

limit

페이지의 항목 처음 몇 개에만 관심이 있을때 사용합니다. 이 매개변수는 페이지에 나타난 순서대로 찾으며 그 순서가 원하는 바와 일치한다고 보장 하지는 않으므로 주의 하시길 바랍니다.

 

keyword

특정 속성이 포함된 태그를 선택할때 사용합니다.

 

예를 들면 id가 music인 값을 출력하려고 하면 다음과 같이 지정해 주면 됩니다.

bsObj.findAll(id="music")

 

 

find(tag, attributes, recursive, text, keyword)

 

findAll과 비슷하지만 limit가 없습니다. find는 findAll을 호출하면서 limit가 1인 함수입니다. 따라서 1개만 출력합니다.

 

댓글