* 동적인 웹 사이트 크롤링
-동적인 웹사이트 확인: Javascript를 껐을 때 동작이 안되면 동적인 사이트
(web developer로 javascript disable)
*크레딧잡을 크롤링 해보았다
(기본적으로 requests, json 등은 import 해 준 상태여야 한다)
----------------------------------------------------------------------------------------------------
KEYWORD_URL = "https://kreditjob.com/api_ver2/searchData?q="
DETAIL_URL = "https://kreditjob.com/api_ver2/getInfoByQueryPkNm?query="
# = 뒤의 공간이 비어있는 이유는 뒤에 Keyword(삼성) 나 특정 기업의 id값이 오기 때문
(ex. https://kreditjob.com/?company=124810-삼성전자)
get_keyword_url = lambda keyword: KEYWORD_URL + keyword
get_detail_url = lambda pk_nm: DETAIL_URL + pk_nm
# 각각의 URL에 keyword, ID값을 주어주는 작업. pk_nm은 keyword_url 데이터에서 얻어내야한다.
# 빈 data를 만들고 거기에다가 넣자
KEYWORD = "삼성"
data = [
{
"name":company.get('SERVICE_NAME'),
"id":company.get('PK_NM')
}
for company
in requests.get(get_keyword_url(KEYWORD)).json().get("data")
]
# 빈 data 리스트에 KEYWORD_URL 값 중 필요한 name과 id 추출
(detail_url 값 뒤에 오는것이 id-name 유형이기 때문)
#get_keyword_url(KEYWORD) 에서 "data"를 뽑으면 나오는 결과물을 하나씩 집어넣어서 각각의 '삼성' 계열사들의 정보를 추출
result = [
{
"name":company.get("name"),
"salary": requests.get(get_detail_url(company['id'])).json().get("data")[0].get("AVG_SALARY_YY")
}
for company
in data
]
# 최종 결과물: {} dict 형식으로 만들어서 "name", "salary" key 값에 value를 넣어줌.
# name은 data에 있는 name 그대로
# salary는 차근차근..
------------------------------------------------------------------------------
==> 추후에 함수화 시키는 작업도 하자!
'backend > python' 카테고리의 다른 글
파이썬에서 파일 입출력하기 (0) | 2016.11.19 |
---|---|
iterator, generator (0) | 2016.11.19 |
정규표현식-Regular expression (0) | 2016.11.17 |
jupyterthemes 적용하기 - 이쁘게 쓰자 (0) | 2016.11.08 |
파이썬 selenium 설치 관련 문제 해결 (2) | 2016.11.08 |