Security Engineer 2022. 11. 30. 21:00

5.13 None

 

None은 True, False, 숫자, 문자열 처럼 변수에 넣을 수 도 있고,

리스트나 딕셔너리 안에 넣어도 되는 데이터 타입이다.

 

None 을 쓸 때는, 무언가가 없을 때 이다.

False와 헷갈릴수 있는데, False 는 True 가 아니다는 것을 의미한다.

None은 무언가가 "없을 때"를 의미한다, 혹은 무언가가 있어야 하는데 아무것도 없을 때를 의미.

None은 무언가가 있어야 하는데 없다고 나타내주는 데이터 타입이다.

 

지난 게시물에서 아래 코드를 사용했을 때 li들을 출력했는데,

일부 li 들은 구인 정보가 있었지만,

어떤 li 는 mosic-zone 으로 구인 정보가 없는 li 가 있었다. 

from requests import get
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_experimental_option('excludeSwitches', ['enable-logging'])
browser = webdriver.Chrome(options=options)

base_url = 'https://kr.indeed.com/jobs?q='
search_term = 'python'

browser.get(f'{base_url}{search_term}')
soup = BeautifulSoup(browser.page_source,'html.parser')
job_list = soup.find('ul', class_='jobsearch-ResultsList')
jobs = job_list.find_all('li', recursive=False)
for job in jobs:
    print(job)
    print('//////////////////')
    

while(True):
    pass

출력값:

mosaic-zone li

 

None 을 활용해서 li 가 mosaic-zone을 가지고 있는지 확인해본다. 

from requests import get
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_experimental_option('excludeSwitches', ['enable-logging'])
browser = webdriver.Chrome(options=options)

base_url = 'https://kr.indeed.com/jobs?q='
search_term = 'python'

browser.get(f'{base_url}{search_term}')
soup = BeautifulSoup(browser.page_source,'html.parser')
job_list = soup.find('ul', class_='jobsearch-ResultsList')
jobs = job_list.find_all('li', recursive=False)
for job in jobs:
    zone = job.find('div', class_='mosaic-zone')
    if zone == None:
        print('job li')
    else:
        print('mosaic li')
    

while(True):
    pass

출력값:

mosaic li

 

zone = job.find('div',class_='mosaic-zone')

→ class 이름이 mosaic-zone 인 div 를 찾아서 zone 이라는 변수에 저장한다.

 

if zone == None: → zone 이 없으면 ( class 이름이 mosaic-zone 인 div 가 없으면 )

print('job li') → job li 를 출력

else:           → 아니면 ( zone 이 있으면 → class 이름이 mosaic-zone 인 div 가 있으면 )

print('mosaic li') → mosaic li 출력

 

출력값을 보니 5개 구인 정보 마다 mosic li 가 배치되는거 같다.

그러므로 1페이지당 15개의 구인정보가 배치된다. ( 실제 페이지 구인정보 개수와 동일 . )