본문 바로가기

파이썬 크롤링 002 - 크롤러 구현 / 데이터수집 자동화 이전 포스팅에서 파이썬 크롤링 001 - 구성요소, 구현방법에 대해서 이야기 했습니다. 이어지는 포스팅이니까 혹시 1번을 안보신 분들은 보고 오시면 더 쉽게 이해되지 않을까 싶습니다. 이번 포스팅에서는 크롤러를 구현해봅니다. 이게 크롤러가 끝이야? 장난해? 라고 하실 수 있겠습니다. 저는 비개발자 분들이 부르는 크롤링은 사실 크롤링과 파싱을 합친 개념이라고 보거든요. 그래서 원하시는 결과를 얻으려면 파싱까지도 하셔야 하는데 이번 포스팅에서는 크롤링만 해보도록 하겠습니다. 어떤 예제가 좋을까? 고민을 했는데 주식쪽으로 예제를 만들어봤습니다. 주식을 투자하시다보면 회사들의 정보를 찾아보는 경우가 많죠. 간단하게는 요약정보부터 조금 더 자세하게는 재무제표까지 들여다 보는 것은 기본이라고 하죠. 이런 가정을 해.. 더보기
replace 2번하기, 3번하기 그래도 한 번 포스팅해두면 기억하는 것 같아서엄청나게 간단한 내용이지만 포스팅 해둡니다. :) python에서 하나의 string에서 replace를 통해 문자를 바꿀 수 있죠. 예로 다음 그림과 같습니다. 위 그림에서 11111111 과 2222222 를 바꾸기 위해서는 새로운 변수에 저장하고 또 replace해야 할까요? 아니더라구요. 동시에 여러 문자를 바꾸고 싶은 경우 아래와 같이 replace를 중첩해서 사용할 수 있더라구요. 마치 리눅스의 pipe 같은 느낌이네요. 그러니깐 replace 함수가 반환하는 것이 string이니깐 거기에 또 replace가 가능하다는 것이겠네요. 더보기
파이썬 basic - 딕셔너리 키 리스트 (dictionary key list) 파이썬에서 딕셔너리의 키 리스트를 얻기 위해서는 keys() 라는 함수를 사용하면 됩니다. 예로 test라는 딕셔너리가 아래와 같이 구성되어 있다고 가정해보겠습니다. test = {'a': 'apple', 'b': 'ball', 'c': 'circle'} test의 키 값들을 리스트로 받기 위해서 keys() 함수를 사용한 결과입니다. keys() 함수는 리스트로 키들을 반환하는 것을 확인할 수 있습니다. 딕셔너리에서 key 값을 이용해서 값을 얻는 방법은 아래 예제와 같이 가능합니다. 아래와 같은 방법도 있겠죠. 더보기
JAVA Basic 003 - resource path in eclipse project --src/main/java ├ com.open.moto │ └ Maa.java └ com.open.post --src/main/resources ├ a_resourceFolder │ └ test.jpg └ b_resourceFolder Maa.java 안에서 a_resourceFolder 아래 있는 test.jpg 파일에 대한 경로를 알고자 할 때는 다음 소스를 사용하면 됩니다. import java.net.URL; URL imageLocation = this.getClass().getResource("/a_resourceFolder/test.jpg"); String imageFullPath = imageLocation .getPath(); System.out.println(imageFullPath); 더보기
GDAL : gdal_grid example GDAL에는 여러 CLI가 있는데요. 이번 포스팅에선 gdal_grid를 활용해서 interpolation하는 간단한 예제를 만들어보려고 합니다. gdal_grid에 대한 전반적인 설명은 아래 url에 나와있습니다. gdal_grid description : http://www.gdal.org/gdal_grid.html 여러 옵션도 존재하는데요. 이번 포스팅에서는 최대한 간단하게 interpolation하는 것을 목표로합니다. interpolation의 전반적인 설명은 아래 url에서 확인하시죠. ArcGIS Help 10.1 - Understanding interpolation analysis : http://resources.arcgis.com/en/help/main/10.1/index.html#//.. 더보기
파이썬 basic - 처리 시간 측정 (timeit) 파이썬에서 처리 시간을 간단하게 측정할 수 있도록 도와주는 timeit에 대해서 간단하게 정리합니다. 사용 방법은 CLI (Command Line Interface)에서 사용하시거나, 소스코드안에서 timeit을 import 해서 사용하실 수 있는데요. 먼저 CLI 방식으로 사용하는 예제는 아래와 같습니다. python -m timeit 'for x in range(100): print x' #1000 loops, best of 3: 673 usec per loop for문을 통해서 x를 출력하는 소스를 timeit으로 반복적으로 수행해보고, 결과를 알려줍니다. 잠시 이 포스팅과는 상관없지만 range와 xrange의 속도를 비교해보면.. xrange.... #1000 loops, best of 3: 9.. 더보기
파이썬 basic - list 기초 python에서 list는 []로 표현합니다. 1. 리스트 선언 비어있는 리스트는 다음과 같인 선언 할 수 있어요. fa = [] 초기화 시킬 수도 있습니다. fa = ["a1", "a2", "a3"] 리스트에는 꼭 동일한 타입의 값이 들어갈 필요는 없습니다. 다음과 같이 말이죠. fa = ["a1", 123, "a3"] 2. 리스트에 추가 이미 생성된 리스트에 다양한 방법으로 값을 추가할 수 있습니다. append, insert, extend 와 같은 list 내장 함수를 사용하시면 되는데요. 아마도 가장 많이 사용되는 것은 append 아닐까요? 저는 append를 거의 주로 사용하고 나머지는 잘 사용하지 않는 것 같습니다. 단순한 프로그래밍만 해서 그럴 수도 있겠네요 ㅠ 아무튼 append는 다음과.. 더보기
파이썬 basic - rjust, ljust (오른쪽 정렬, 왼쪽 정렬) 이번에는 파이썬에서 문자열을 출력할 때 왼쪽, 오른쪽 정렬하는 방법에 대해서 간략하게 정리합니다. 오른쪽 정렬은 rjust 라는 함수를 사용하고, 왼쪽 정렬은 ljust 라는 함수를 사용하면 됩니다. 예를 들어서 다음과 같은 조건이 있다고 하면. 1. 문자열 a에 값 "123"이 입력되어 있음 2. 문자열 a를 크기가 10인 문자열로 만들고, 오른쪽으로 정렬하고 싶음 이때 사용할 수 있는 함수는 rjust가 되겠죠. 간단하게 소스로 나타내보면 다음과 같습니다. a = "123" print a.rjust(10) 결과 = ' 123' rjust와 ljust는 정렬해주는 것이 주요 기능이지만, 정렬할 때 생성되는 공간을 공백(space)이 아닌 다른 값으로 채울 수 있습니다. 위와 같은 조건에서 오른쪽 정렬할.. 더보기
php basic - php 문자열 결합 (string join) php 문자열을 결합하기 위해서는 다음과 같은 방식으로 하시면 됩니다. 예를 들어 "aaa"와 "bbb"라는 문자열이 있을 때 결합하는 방법은 .(점) 을 사용하시면 되는데요. $joinString = "aaa"."bbb" 위와 같은 식으로 하시면 되겠죠. 예제 코드 (문자열 결합해서 아파치 error.log에 출력하기) 1 더보기
파이썬 basic - 클래스, 오브젝트 정보 알아내기. 파이썬에서 객체에 대한 정보를 알아내기 위해서는 어떤 방법이 있을까영. 여러가지 방법이 있겠지만, __dict__를 사용해보는 것은 어떠신가요? 아래와 같이 말이죠. 1 class ClassInfo: 2 3 variable001 = "001" 4 variable002 = "002" 5 variable003 = "003" 6 variable004 = "004" 7 variable005 = "005" 8 9 def main(self): 10 print self.__class__.__dict__ 11 12 def addFunction(self): 13 print "add..." 14 15 if __name__ == "__main__": 16 test = ClassInfo() 17 test.main() 위 스크.. 더보기
파이썬 basic - import path (임포트 경로) 오랜만에 파이썬 basic에 대해서 포스팅 합니다. 오늘은 import에 대해서 간략하게 알아보려구요. import는 모듈을 불러오는 역할을 담당하는데요. python 환경변수(?) 녀석이라고 할 수 있는, PYTHONPATH를 뒤져서 모듈을 가져오게 데죠. 즉, 리눅스에서 yum의로 python의 라이브러리를 설치했다고 하면, /usr/lib/python_version/site-packages/여기 여기에 주로 설치가 되죠. 수동으로 설치하셨다면, /usr/local/lib/python_version/site-packages/요기 요기에 설치가 데겠죠? ㅎ 아무튼 여기, 요기 위치는 PYTHONPATH에 등록하셨을 테니깐 상관없구요. 직접 클래스를 작성하신 경우, 그 클래스를 담고 있는 파일이 다른 폴.. 더보기
파이썬 Basic - 폴더안에 있는 파일 리스트 얻기 파이썬 스크립트를 통해서, 운영체제(리눅스든 윈도우든)에 있는 폴더안에 파일들을 읽어오는 것에 대해서 간략하게 정리할께요. 사실 popen에 대해서 이야기하는 것이구요. import os checkUserFolder = os.popen("ls /usr/local/lib")for i in checkUserFolder: print i[:-1] 위처럼 하시면 데구요. 소스설명을 간략하게 드리자면. /usr/local/lib안에 있는 파일들의 목록을 프린트해라 입니다. 물론 os.system으로도 출력하는 것은 가능하겠지만, 파일 목록을 컨트롤 하는 것은 os.popen이 적당합니다. 실행하면 저의 경우는 아래와 같이 나와요. [yourid@blrblrblrblr ~]$ !ppython test.pydtrace.. 더보기