프로그래머스 해시 - 전화번호 목록, 문제 확인 문제 설명은 아래와 같다. 한 전화번호가 다른 번호의 접두어인 경우가 있는지 확인하려 함 구조대 전화번호가 119, 지영석의 전화번호가 11 9552 4421일 때, 구조대 전화번호는 지영석 전화번호의 접두사임 phone_book은 전화번호를 담은 배열 접두어인 경우가 있으면 flase, 아니면 true를 반환 프로그래머스 해시 - 전화번호 목록, 문제 풀이 (파이썬) 일단 같은 인덱스인 경우는 스킵하고 더 짧은 값을 찾아낸 후 각 값을 더 짧은 길이만큼으로 잘랐을 때, 포함되는 관계가 있는지 확인하는 방식을 사용했다. def solution(phone_book): for i,k in enumerate(phone_book): for i_,k_ in enum..
혼자 정보보안 공부를 시작하면서 여러가지를 책으로도 공부하고 인터넷으로도 공부하고 했지만 제일 오랜 시간을 투자하지 못했던 것이 자료구조, 알고리즘 공부이다. 오늘부터 최소 이틀에 한문제라도 풀어보려 한다. 해시는 키-값 (key-value) 쌍으로 데이터를 저장하는 자료구조로 프로그래머스(programmers)에서는 해당 자료구조를 학습하기 위한 4가지 문제를 제공하고 있다. 프로그래머스 해시 - 완주하지 못한 선수, 문제확인 문제 설명은 아래와 같다. 단 한명의 선수를 제외하고는 모든 선수가 마라톤을 완주함 선수들의 이름이 담긴 배열 participant이 주어짐 완주한 선수들의 이름이 담긴 배열 completion이 주어짐 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성..
파이썬 wordcloud는 중요한 단어나 키워드를 시각화해서 보여주는 시각화 도구이다. wordcloud 자체적으로 빈도수를 계산하는 기능이 있다고 하지만 아무래도 한글의 특성이 있다보니, 나는 한글 명사를 추출하고 빈도수를 계산하는 것까지는 KoNLPy를 사용해주었다. KoNLPy 설치와 KoNLPy를 사용한 한글 명사 빈도수 계산은 아래 포스팅을 참고해주기 바란다. 관련포스팅 KoNLPy (파이썬 한글 형태소 분석기 ) 윈도우 설치 방법 KoNLPy (파이썬 한글 형태소 분석기 ) 윈도우 설치 방법 파이썬 한글 형태소 분석기인 KoNLPy 설치는 아래 기입된 순서대로, 본인 환경(파이썬 버전, 윈도우 비트)에만 맞게 진행해주면 에러가 발생하지 않는다. 참고로 나의 환경은 '파이썬3.8, 윈도우10 x..
KoNLPy 란 아무래도 언어마다 자연어처리를 하기 위한 특성이 제각각이다보니 영어에 맞춰진 자연어처리 도구를 사용하기는 한글에는 맞지 않는다. 그런 이유에서 한글 자연어 처리에 맞춤화된 파이썬 오픈소스 라이브러리인 KoNLPy가 등장했다. 일명 '파이썬 한글 평태소 분석기'이다. 처음엔 당연히 '코엔엘피와이'라고 생각했는데 읽는 방법은 '코엔엘파이'라고 한다. KoNLPy 설치는 pip로 바로 설치되지는 않는다. 그전에 자바 jdk와 Jpype가 설치되어있어야 하는데 자세한 설치 방법은 아래 포스팅을 참고해주기 바란다. 관련포스팅 KoNLPy (파이썬 한글 형태소 분석기 ) 윈도우 설치 방법 KoNLPy (파이썬 한글 형태소 분석기 ) 윈도우 설치 방법 파이썬 한글 형태소 분석기인 KoNLPy 설치는 ..
파이썬 한글 형태소 분석기인 KoNLPy 설치는 아래 기입된 순서대로, 본인 환경(파이썬 버전, 윈도우 비트)에만 맞게 진행해주면 에러가 발생하지 않는다. 참고로 나의 환경은 '파이썬3.8, 윈도우10 x64'이다. 자바 JDK 설치 제일 먼저 아래 오라클 다운로드 페이지에서 자바 JDK를 설치해주어야 한다. https://www.oracle.com/java/technologies/javase-downloads.html Java SE - Downloads | Oracle Technology Network | Oracle Java API Documentation Updater Tool 1.3 Java API Documentation Updater Tool repairs-in-place Java API Do..
뉴스 기사 크롤링 첫번째 - 보안뉴스 뉴스 기사 크롤링, 뉴스 기사 크롤러 만들기 첫번째 대상은 '보안뉴스' 이다. 왜냐면 내가 보안 종사자이기 때문이다. 어쨌든 보안뉴스 #전체기사 부분에서 기사 제목과 본문, 날짜를 원하는 만큼 크롤링해서 txt 파일에 저장해본다. 파이썬 Selenium webdriver를 사용해 크롤링할 것이기 때문에 Selenium 사용법에 대한 설명은 아래 관련포스팅을 참고해주길 바란다. 관련포스팅 [파이썬] 동적 웹 크롤링 (3) - Selenium 사용법 (tag, class, xpath 등) [파이썬] 동적 웹 크롤링 (3) - Selenium 사용법 (tag, class, xpath 등) 아래의 이전 포스팅에서 Selenium 및 브라우저 드라이버 설치, webdriver..
개인적으로 하고싶은 것이 있어서 파이썬 Selenium(셀레니움) 모듈을 사용해서 크롤링을 하던 중, alert 창을 마주했다. 간단히 응답 코드를 받아와서 처리해주면 되겠지 했는데 응답이 '200 OK' 이다. 어떻게 해야하나 했는데, 역시 파이썬 역시 Selenium !!! alert 경고창에 관련한 API를 제공하고 있다. 여기에 간단히 정리한다. alert 경고창 객체 얻기 alert 객체는 switch_to_alert()를 써서 간단히 가져올 수 있다. alert 창이 있는지 그 유무를 체크하기 위해 try, excepy 문을 사용했다. from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager u..
이전 포스팅에서 알아보았던 Selenium(셀레니움) 사용법을 활용해서 비트코인 거래소 중 하나인 고팍스 메인페이지의 암호화폐 테이블 전체를 크롤링해서 엑셀에 저장해보려 한다. 참고로, webdriver를 설치하고 사용하는 방법과, Selenium(셀레니움) 을 사용해 element에 접근하는 방법 등은 페이지 하단의 '이전포스팅' 링크를 확인하길 바란다. 크롤링 대상 페이지 크롤링 대상 페이지는 이전 포스팅에서와 동일하게, 비트코인 거래소 중 하나인 '고팍스'이다. 많은 비트코인 거래소 중 이 페이지를 선택한 이유는 그냥 webdriver로 접근했을때 여기가 반응이 제일 빨랐기 때문이다. 제일 덜 복잡하고 가벼운 페이지 중 하나인 것 같다. 테이블 위치 확인 단순히 BeautifulSoup를 사용할때는..
파이썬으로 윈도우 레지스트리를 다뤄보는 이유는 보통 윈도우 배치파일(.bat) 을 생성할 때 필요하기 때문이다. 이번 포스팅에서는 파이썬 winreg 모듈을 사용해 '윈도우10 자동 업데이트 비활성화'를 가정하고 이를 위한 레지스트리 키를 생성하고 값을 등록해보려 한다. winreg 모듈 winreg는 윈도우 레지스터리에 관한 API를 제공하는 파이썬 모듈로 아래 링크에서 제공되는 API를 확인할 수 있다. Python 공식 홈페이지, winreg winreg — Windows registry access — Python 3.8.1 documentation winreg — Windows registry access These functions expose the Windows registry API to..
아래의 이전 포스팅에서 Selenium 및 브라우저 드라이버 설치, webdriver 객체 생성방법까지 알아보았다. webdriver 객체가 브라우저 제어권을 얻고 타겟 URL에 접근까지 했기 때문에 오늘은 그 후 작업으로 크롤링하고 싶은 각 Element에 접근하는 방법, Selenium 모듈의 사용법을 알아본다. 함께보면 좋은 포스팅! [파이썬] 동적 웹 크롤링 (1) - Selenium webdriver 설치 및 사용 [파이썬] 동적 웹 크롤링 (2) - Selenium 을 활용해야 하는 이유? 자바스크립트 실행 find_element_by_id 'id'를 통해 Element에 접근하는 방법이다. # 'id' 로 Element에 접근하는 방법 result=driver.find_element_by_i..
Selenium webdriver를 사용해서 웹크롤링을 수행할 경우 일반 크롤링과 어떻게 다르고, 어떤 경우에 활용되어야 좋은지 확인해본다. 다음 포스팅들에서는 Selenium으로 각 Element에 접근하는 방법 등 실제 사용방법을 알아보고 해당 내용과 연계하여 코인마켓캡의 시가총액 등 관련 데이터들을 직접 크롤링하는 코드를 작성해보려 한다. 이전포스팅 [파이썬] 동적 웹 크롤링 (1) - Selenium webdriver 설치 및 사용 [파이썬] 동적 웹 크롤링 (1) - Selenium webdriver 설치 및 사용 파이썬 Selenium(셀레니움) webdriver를 사용해서 웹크롤링을 수행하기 위해 Selenium 모듈 설치, 사용할 브라우저, 브라우저의 드라이버를 설치해보고 사용방법을 간단히..
파이썬 Selenium(셀레니움) webdriver를 사용해서 웹크롤링을 수행하기 위해 Selenium 모듈 설치, 사용할 브라우저, 브라우저의 드라이버를 설치해보고 사용방법을 간단히 알아본다. 추가적으로 chromedriver 경로 입력시 발생했던 에러에 대한 해결방법도 제시한다. Selenium 설치 selenium 설치는 아래와 같이 pip로 간단히 할 수 있다. pip install selenium 사용할 브라우저 준비 어떤 브라우저를 사용하던 자유이다. 다만, 크롤링할 때 브라우저를 제어하기 위해 사용할 해당 브라우저의 드라이버를 다운받아야 한다. 난 처음에 드라이버를 사용하는지 모르고 계속 브라우저 자체 exe의 경로를 넘겨주어서 계속 에러가 났었다. 각 브라우저 드라이버는 아래 링크에서 다운..