-
파이썬 독학 15일차 recursive와 None타입의 활용coding 2022. 9. 15. 00:00728x90반응형SMALL
1. <li> 하위의 <li>를 또 가져올 때
job의 li는 잘 가져 왔지만 아래 사진과 같이 li 항목 아래에 있는 li를 또 가져오고 있다.
아래에 있는 li는 필요 없다면 어떻게 해결해야 할까?
바로 recursive(재귀 함수를 활용할 수 있다.)
보통은 아래처럼 자기 자신을 반복할 때 사용하지만
def recursive_function(i): # 100번째 호출을 했을 때 종료 if i== 100: return
역으로 recursive = False 를 작성하면 첫번째 <li>만 찾고 그 하위의 항목은 더 이상 찾지 않게 된다.
아래와 같이 작성하면 된다.
soup = BeautifulSoup(browser.page_source, 'html.parser') job_list = soup.find('ul', class_="jobsearch-ResultsList css-0") jobs = job_list.find_all('li', recursive = False)
2. 쓸모 없는 정보가 있는 <li>를 없애고 싶을 때
job의 정보가 있는 <li>만 가져오고 싶지만 6번째마다 <li><div class="mosaic-zone">이라는 코드가 나온다.
페이지를 살펴보면 job과 job 사이에 들어가 있는 것으로 보인다.
이 모자이크 존을 빠르게 없애기 위해 어떤 방법을 사용하면 좋을까?
바로 14일차 포스팅에서 공부한 None타입을 사용하면 된다.
1. mosaic-zone의 존재 여부를 확인한다.
2. None이 반환된다. == mosaic-zone이 없는 <li>로 판별
코드는 아래와 같을 것이다.
for job in jobs: zone = job.find("div", class_="mosaic-zone") if zone == None:
728x90반응형LIST'coding' 카테고리의 다른 글
파이썬 독학 17일차 pagination 페이지 탐색 (0) 2022.09.17 파이썬 독학 16일차 beautiful select, select_one함수 (0) 2022.09.16 파이썬 독학 14일차 NONE 과 자료형 (0) 2022.09.14 파이썬 독학 12일차 refactor 리팩터링 (0) 2022.09.12 파이썬 독학 11일차 BeautifulSoup(웹 파싱하기, 스크래핑) 5 (0) 2022.09.11