Python/crawling

BeautifulSoup Select 의 결과 ResultSet

arvigoes 2020. 12. 22. 12:35

select 와 select_one 의 차이점에 대해서는 이전에 알아보았습니다.
arvigoes.tistory.com/188?category=825629

 

BeautifulSoup select

크롤링을 하기 위해서 필수적으로 BeautifulSoup 을 사용하게 됩니다. Request 에 대해서 엄청난 양의 Response 를 보게 되면 사용 할 수 밖에 없는 듯 합니다. 더 좋은게 있다면 그걸 사용하겠지만 지식

arvigoes.tistory.com

오늘은 select 의 결과로 리턴 되는 bs4.elementResultSet 에 대해 알아보고자 합니다.

select 의 결과가 몇개인지를 확인 하는 방법입니다.

# select & select_one 사용법

from bs4 import BeautifulSoup

r = requests.get("크롤링 웹 페이지 주소")
soup = BeautifulSoup(r.text, 'html.parser')

#table class ="board_list_table"

items = soup.select('.table_body')

len(items) #요소의 개수

len 함수를 이용하여 요소의 개수를 확인합니다.

샘플을 만들어보려다 귀찮아서 한번 select 를 웹페이지에 테스트 해 본 결과 입니다. (내용은 삭제!)

결과가 19개가 나왔네요
len(items) 의 결과 또한 19로 나옵니다.
전체를 순회 해 보도록 하겠습니다.

# select & select_one 사용법

from bs4 import BeautifulSoup

r = requests.get("크롤링 웹 페이지 주소")
soup = BeautifulSoup(r.text, 'html.parser')

#table class ="board_list_table"

items = soup.select('.table_body')

len(items) #요소의 개수

for item in items :
	titleTag = item.slect_one('a.title')

for 대신 while 을 사용해도 상관 없습니다.

# select & select_one 사용법

from bs4 import BeautifulSoup

r = requests.get("크롤링 웹 페이지 주소")
soup = BeautifulSoup(r.text, 'html.parser')

#table class ="board_list_table"

items = soup.select('.table_body')

count = len(items) #요소의 개수
idx = 0
while idx < count :
	titleTag = items[idx].slect_one('a.title')
    ++idx

동일한 결과입니다. 저는 특별히 while 을 사용해야할 경우는 잘 없더라구요
resultSet은 list 와 성격이 비슷합니다.
크게 어려워 할 필요없이 list<bs4.element.Tag > 라고 생각해도 될 것 같네요

 

 

 

'Python > crawling' 카테고리의 다른 글

BeautifulSoup select  (0) 2020.11.29
pycharm selenium import  (0) 2020.11.22