-
파이썬 독학 18일차 range 함수(원하는 만큼 함수 반복)coding 2022. 9. 18. 00:00728x90반응형SMALL
range는 순서 객체를 return 해주는 함수이다.
즉 이건 list 같은 걸 즉석으로 만들 수 있게 해준다.
코드를 다섯번 실행시키기 위해 지금까지 아는 방법으론
for x in [1, 2, 3, 4, 5]: print x
이런식으로 실행 했어야 한다.
이젠 범위를 주는 return을 사용할 수 있다.
range(5)를 실행시키면
range(0, 5)를 리턴해준다.
for i in range(5): print(i)
를 실행하면 0 1 2 3 4가 출력된다.
총 5개의 print를 볼 수 있다.
즉 원한는 만큼의 list를 만들어준다.
이에 파싱을 원하는 페이지의 갯수를 pages라고 했을 때
3행의 for page in range(pages)를 통해 페이지의 갯수 만큼의 페이지를 파싱하게 된다.
def extract_indeed_jobs(keyword): pages = get_page_count(keyword) for page in range(pages): options = Options() options.add_argument("--no-sandbox") options.add_argument("--disable-dev-shm-usage") base_url ="https://www.indeed.com/jobs?q=" browser = webdriver.Chrome(options=options) browser.get(f"{base_url}{keyword}") # print(browser.page_source) #################################################################### results = [] 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) for job in jobs: zone = job.find("div", class_="mosaic-zone") if zone == None: # h2 = job.find("h2", class_="jobTitle") # a = h2.find("a") anchor = job.select_one("h2 a") title = anchor['aria-lable'] link = anchor['href'] comany_name = job.find("span", class_="companyName") location = job.find("div", class_="companyLocation") job_data = { 'link': f"https://kr.indeed.com{link}", 'company_name' : company_name.string, 'region' : location.string, 'positon' : title # "🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸" } results.append(job_data) # print("🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸") for result in results: print(result, "\n//////\n")
728x90반응형LIST'coding' 카테고리의 다른 글
파이썬 독학 19일차 변경되는 url 스크래핑 (0) 2022.09.19 파이썬 독학 17일차 pagination 페이지 탐색 (0) 2022.09.17 파이썬 독학 16일차 beautiful select, select_one함수 (0) 2022.09.16 파이썬 독학 15일차 recursive와 None타입의 활용 (0) 2022.09.15 파이썬 독학 14일차 NONE 과 자료형 (0) 2022.09.14