저번 포스팅까지 정규표현식과 nltk tokenizer를 이용하여 전처리를 완료했다. 또한 빈도 수 분석을 위해 Counter 함수로 빈도수를 체크하고 각 항목을 딕셔너리 형태로 저장하였다. 이제 전처리가 완료된 데이터를 시각화하여 분석을 진행한다. 현직 데이터 분석가에 따르면 실제로 시각화 과정이 다른 팀과의 협업, 혹은 프레젠테이션 과정에서 상당히 중요하다고 한다. 모두가 데이터와 분석 방법론에 대한 지식을 갖춘 것은 아니다. 다른 부서, 혹은 의사 결정자에게 공들인 프로젝트를 알기 쉽게 설명하기 위해서는 다양한 시각화 방법을 익혀야 하며 전략적으로 사용할 수 있어야 한다. 개인적인 toy project가 아니라 실제 비즈니스 의사결정에 데이터 기반 인사이트를 제공하기 위해서 분석 과정과 결과를 효과..
지난 포스팅에서 채용 공고들 각각의 URL을 수집하였다. 이번에는 채용 공고들을 클릭하고 들어가면 볼 수 있는 Job description을 구체적으로 수집해본다. 마찬가지로 selenium을 이용하여 크롤링하며 기본적인 진행과정은 전 단계와 동일하다. 수집한 채용 공고의 개별 URL 접속 import sys import os import pandas as pd import numpy as np from bs4 import BeautifulSoup from selenium import webdriver from selenium.webdriver.common.keys import Keys import chromedriver_autoinstaller import time from tqdm import tqd..
이 프로젝트는 웹 사이트에서 데이터를 수집하므로 크롤링을 통해 데이터셋을 구축한다. 웹 사이트 크롤링이면 우선적으로 목표로 하는 웹 사이트의 구성을 살펴보고 접근 방법을 결정하는 것이 효율적이다. 본인도 이 프로젝트에서 마음이 앞서 무작정 크롤링이 시도하다가 스트레스만 받고 결과적으로 비효율적인 방식으로 시간을 허비하기도 했다. 채용 공고 크롤링을 위해 우선 원티드의 웹 화면 구성을 살펴보자 화면 구성 살펴보기 원티드 홈페이지에 접속하여 '데이터 분석가'로 검색한 결과이다. 61개의 포지션 채용 공고가 검색되었으며 한 줄에 4개씩 채용공고 타이틀, 회사명, 지역, 그리고 오른쪽 상단의 하트표시로 구직자가 찍어놓은 관심 수를 보여준다. 이제 구체적으로 수집하고 싶은 목표데이터에 접근하는 방법을 생각해보자 ..
정규표현식(regex) 일종의 문자를 표현하는 공식 → 특정 규칙이 있는 문자열 집합을 추출할 때 사용 HTML 태그를 사용한 크롤링 시 유용함 import re → 표준 모듈 re로 사용 1. 메타 문자(meta-characters) - 문자의 구성을 설명하기 위해 쓰이는 문자 [abc] one of / [ ] 내부의 문자와 매칭 / [ ] 에는 or 의미 / a or b or c = a | b| c [a-z] 문자의 범위 : a~z [^abc] none of 부정 / (a or b or c) 가 아닌 문자 ^abc 문자열의 시작 / 줄의 맨 앞의 abc만 매치 $abc 문자열의 끝 / 줄의 맨 끝의 abc만 매치 . \n 을 제외한 모든 문자 * 직전 패턴을 0번 이상 반복 (0도 가능 : 반복되지 ..
지난 번 네이버 블로그 크롤링과 유사하게 네이버에서 키워드 검색 후 관련 뉴스 기사 크롤링을 실습해 본다. 마찬가지로 처음에는 자동검색을 통해 url들을 수집한 뒤 pandas로 데이터프레임화 한 후 csv로 저장한다. 그 다음 csv를 로드한 뒤 url을 하나씩 열어 기사 본문과 댓글, 좋아요 등의 감정 수집까지 진행한다. 역시나 처음에는 전체 구조를 for문으로 만들기 전에 하나의 기사로 코드를 실험한다. 0. 라이브러리 & 모듈 - Selenium ActionChains : 여러 개의 동작을 체인으로 묶어서 저장하고 실행한다. - re : 정규표현식을 사용할 수 있는 모듈 # 라이브러리 import import pandas as pd import numpy as np from selenium imp..