[Python]Web Scraping-2
9895 ワード
import requests
from bs4 import BeautifulSoup
#bs4 버전 BeautifulSoup import
LIMIT = 50
URL= f"https://www.indeed.com/jobs?q=python&limit={LIMIT}"
def extract_indeed_pages():
result = requests.get(URL)
#url 주소 변수 저장
soup = BeautifulSoup(result.text, "html.parser")
# BeautifulSoup 변수 설정 indeed site에서 text 가져오기
pagination = soup.find("div", {"class": "pagination"})
#pagination , indeed_soup.find 명령어로 찾기
#div 로 사용된 class
links = pagination.find_all('a')
#pagination에서 찾은 div, class 중에서 'a'(anchor) 찾기
pages = [] # 비어있는 리스트 작성
for link in links[:-1] :
pages.append(int(link.string))
# find("span")
#Links 에 있는 각 anchor의 span 안에 있는 string만 검색
#link 에 변수 저장,
# string 을 int 로 변경 // 마지막 next 는 int로 변환이 안되니 마지막 직전까지 저장
# pages = pages[0:-1]
# [-1]spans 은 모두 가져오되 마지막 것은 제외
# [0:5] 으로 할 경우 첫5개의 item 불러오기
# [0:-1] 처음부터 마지막 요소까지 실행 ( 마지막 직전 )
# print (pages[-1])
# 마지막 숫자 출력
max_page = pages[-1]
return max_page
def extract_indeed_jobs(last_page) :
jobs = []
# for page in range (last_page) :
result = requests.get(f"{URL}&start={0*LIMIT} ")
# requests.get 로 전체 페이지 가져오기
soup = BeautifulSoup(result.text, "html.parser")
# soup 로 페이지 text 로 가져오기
results = soup.find_all("div" , {"class":
"jobsearch-SerpJobCard"})
# results 값에 soup 로 가져온 text 에서 div,class안에 있는 jobsearch-SerpJobCard 값 가져오기
for result in results :
title = result.find("h2", {"class" : "title"}).find("a")["title"]
# for result in results 는 result(전체)에서 results(soup에서 검색한 값)을 가져온값
# title 변수는 result 값에서 h2에 있는 class 에 있는 title 안에 있는 a(anchor)에 안에 있는 title 을 저장
company = result.find("span", {"class" : "company"})
# result 에서 span 안에 있는 class 안에 있는 company 를 company 변수 저장
company_anchor = company.find("a")
# company 변수에 있는 a(anchor)을 찾아 변수 저장
if company_anchor is not None:
company = str(company_anchor.string)
# 만약 company_anchor 에서 찾은 변수에 'a'가 있다면 'a'출력 후 company 에 저장
else:
company = str(company.string)
# company_anchor에서 찾은 변수에 'a'가 없다면 string만 출력 후 company에 저장
company = company.strip()
# 위에 함수에 의해 저장된 company를 실행 strip은 사이드에 있는 부분이 없어짐
print(title, company)
return jobs
Reference
この問題について([Python]Web Scraping-2), 我々は、より多くの情報をここで見つけました https://velog.io/@cs982607/PythonWeb-Scraping-2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol