반응형
예전에 게임잡도 잡코리아도 그렇고 사람인도 그렇고 그런 채용공고를 볼 수 있는 것들을 몇 개 넣어봤어요. 여러 가지 채용 공고가 많이 있거든요. 저는 그 중에서도 인디드라는 사이트가 있어요. 인디드 사이트가 있는데 여기 사이트도 볼만해서 조금은 봅니다. 그렇게 자주 하지는 않고 그래도 보면 유용한 것들이 많아요. 저는 많이 참고하고 있지만 오늘은 여러분과 마찬가지로 채용공고를 보는데 도움이 되는 내용을 넣었습니다.
파이썬 인디드 채용공고 크롤링 리스트 추출해보기
인디드라는 사이트입니다. 보시면 아시겠지만 이게 잡코리아나 사람 같은 경우는 채용 공고 안에서만 돌아가는 건데 인디드는 좋은 게 뭐냐면 일반 대기업이 있잖아요? 대기업 채용 공고 등도 올라옵니다. 그게 올라와서 대기업이나 공공기관, 공기업도 될 거예요. 인디드가 그게 좋아요. 그런 대기업이나 외국계 기업을 많이 볼 수 있어서 저도 많이 애용하고 있습니다. 많은 도움이 될 것 같아서 파이썬에서 인디드 채용 공고를 크롤링하는 목록이 엑셀 파일로 최종적으로 나오는데 그걸 넣었어요. 채용 공고는 아주 단순해요. 회사, 직무, url이 나오는데 이것도 마찬가지입니다. 키워드를 검색하면 그에 따른 채용 공고 리스트가 다 나오거든요. 그것을 참고해 보세요. 거의 채용공고 리스트 개수가 200개 정도? 200개 정도 나올 것 같네요. 그것만 참고하시면 될 것 같아요.
import warnings
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
from selenium.common.exceptions import NoSuchElementException,StaleElementReferenceException
from bs4 import BeautifulSoup
import time
import pyperclip
import requests
import datetime
import pymssql
import pandas as pd
import chromedriver_autoinstaller
import subprocess
# !pip install chromedriver_autoinstaller <-- 주피터에선 ! 붙이면은 설치됨.
# date, 회사, 직무, URL
#'https://kr.indeed.com/%EC%B1%84%EC%9A%A9%EB%B3%B4%EA%B8%B0?jk=' +
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import chromedriver_autoinstaller
import subprocess
import shutil
warnings.filterwarnings('ignore')
f = open('C:/Users/SAMSUNG/Desktop/python/raw/indeed_apply.csv', 'w', encoding='utf-8-sig')
f.write("date,회사,직무,URL"+'\n')
try:
shutil.rmtree(r"c:\chrometemp") #쿠키 / 캐쉬파일 삭제
except FileNotFoundError:
pass
subprocess.Popen(r'C:\Program Files\Google\Chrome\Application\chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\chrometemp"') # 디버거 크롬 구동
option = Options()
option.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
chrome_ver = chromedriver_autoinstaller.get_chrome_version().split('.')[0]
try:
driver = webdriver.Chrome(f'./{chrome_ver}/chromedriver.exe', options=option)
except:
chromedriver_autoinstaller.install(True)
driver = webdriver.Chrome(f'./{chrome_ver}/chromedriver.exe', options=option)
driver.implicitly_wait(10)
for n in range(0, 1001, 50) :
url = 'https://kr.indeed.com/%EC%B7%A8%EC%97%85?q=%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D&limit=100&radius=25&start=' + str(n)
driver.get(url)
driver.implicitly_wait(10)
html = driver.page_source
soup = BeautifulSoup(html, 'html.parser')
results = soup.find_all("a", {"class" : "tapItem"})
for ar in results :
title = ar.find("h2", {"class" : "jobTitle"}).select_one("span[title]").text
title2 = title.replace(",", "")
try :
company = ar.find("span", {"class" : "companyName"}).text
except :
company = "회사명없음"
url = ar.attrs['data-jk']
url2 = 'https://kr.indeed.com/viewjob?jk=' + str(url)
now = datetime.datetime.now()
nowDate = now.strftime('%Y-%m-%d')
f.write(nowDate + ',' + str(company) + ',' + str(title2) +',' + str(url2) + '\n')
f.close()
driver.close()
# 데이터 쌓기
conn = pymssql.connect(server='localhost', user='', password='', database='' , charset='utf8')
indeed_query = '''
IF OBJECT_ID(N'tempdb..#indeed_apply') IS NOT NULL
DROP TABLE #indeed_apply
CREATE TABLE #indeed_apply (
Date date NULL,
Company nvarchar(max) null,
Job nvarchar(max) NULL,
URL nvarchar(max) NULL
)
bulk insert #indeed_apply from 'C:/Users/SAMSUNG/Desktop/python/raw/indeed_apply.csv' with (firstrow=2, fieldterminator = ',' , rowterminator = '\n', codepage='65001' , keepnulls )
insert into mytest.dbo.indeed_apply
select * FROM #indeed_apply
select * FROM mytest.dbo.indeed_apply with (nolock) ;
'''
data3 = pd.read_sql(sql=indeed_query, con=conn)
conn.commit()
conn.close()
반응형
'Python' 카테고리의 다른 글
[파이썬] pyautogui 마우스, 키보드 매크로 자동화 사용법 (0) | 2022.08.04 |
---|---|
[파이썬] 주피터 노트북 윈도우 cmd, shell 명령어 사용방법 (0) | 2022.08.04 |
[파이썬] 게임잡 채용공고 크롤링 추출 (0) | 2022.08.04 |
[파이썬] MS-SQL 쿼리 및 변수 사용방법 (0) | 2022.08.04 |
[파이썬] HTML PDF 텍스트 추출 및 변환, 크롬 웹페이지 PDF 변환 (0) | 2022.08.02 |
댓글