본문 바로가기

파이썬 크롤링 002 - 크롤러 구현 / 데이터수집 자동화 이전 포스팅에서 파이썬 크롤링 001 - 구성요소, 구현방법에 대해서 이야기 했습니다. 이어지는 포스팅이니까 혹시 1번을 안보신 분들은 보고 오시면 더 쉽게 이해되지 않을까 싶습니다. 이번 포스팅에서는 크롤러를 구현해봅니다. 이게 크롤러가 끝이야? 장난해? 라고 하실 수 있겠습니다. 저는 비개발자 분들이 부르는 크롤링은 사실 크롤링과 파싱을 합친 개념이라고 보거든요. 그래서 원하시는 결과를 얻으려면 파싱까지도 하셔야 하는데 이번 포스팅에서는 크롤링만 해보도록 하겠습니다. 어떤 예제가 좋을까? 고민을 했는데 주식쪽으로 예제를 만들어봤습니다. 주식을 투자하시다보면 회사들의 정보를 찾아보는 경우가 많죠. 간단하게는 요약정보부터 조금 더 자세하게는 재무제표까지 들여다 보는 것은 기본이라고 하죠. 이런 가정을 해.. 더보기
python abs (파이썬 절대값) PYTHON 절대값 (Absolute Value) * Python Standard Library > Built-in Functions > abs() https://docs.python.org/3/library/functions.html#abs 파이썬에서 절대값을 얻기 위해서 abs() 함수를 사용합니다. 사용 테스트를 간단한 예제로 확인해보세요. abs 함수는 정수와 실수를 입력하면 그대로 정수의 절대값, 실수의 절대값으로 돌려줍니다. number1, 2, 4, 5를 보시면 알 수 있습니다. 다만 복소수를 입력하면 값의 크기로 돌려줍니다. number 3, 6을 보시면 알 수 있습니다. 더보기
replace 2번하기, 3번하기 그래도 한 번 포스팅해두면 기억하는 것 같아서엄청나게 간단한 내용이지만 포스팅 해둡니다. :) python에서 하나의 string에서 replace를 통해 문자를 바꿀 수 있죠. 예로 다음 그림과 같습니다. 위 그림에서 11111111 과 2222222 를 바꾸기 위해서는 새로운 변수에 저장하고 또 replace해야 할까요? 아니더라구요. 동시에 여러 문자를 바꾸고 싶은 경우 아래와 같이 replace를 중첩해서 사용할 수 있더라구요. 마치 리눅스의 pipe 같은 느낌이네요. 그러니깐 replace 함수가 반환하는 것이 string이니깐 거기에 또 replace가 가능하다는 것이겠네요. 더보기
파이썬 basic - 리스트 (append, pop, insert) 오늘은 리스트 함수 3개에 대해서 정리해두려고 합니다. 참고 사이트는 https://docs.python.org/2/tutorial/datastructures.html 입니다. 사용하는 리스트는 아래와 같이 생겼다고 가정할께요. tList = ['a', 'b', 'c', 'd'] 1. append 먼저 append는 리스트의 맨 마지막에 새로운 요소를 추가하는 것입니다. tList.append('e') 위와 같은 문장을 실행하면 리스트가 아래와 같이 변경되겠죠. 2. insert 꼭 맨 마지막에 새로운 요소를 추가해야 하는 것은 아니죠. 특정 인덱스(index)에 새로운 요소를 추가하고자 할 때는 insert 라는 함수를 사용할 수 있습니다. 예로 0번째 인덱스에 'f' 를 추가하기 위해서는 아래와 같이.. 더보기
파이썬 basic - 딕셔너리 키 리스트 (dictionary key list) 파이썬에서 딕셔너리의 키 리스트를 얻기 위해서는 keys() 라는 함수를 사용하면 됩니다. 예로 test라는 딕셔너리가 아래와 같이 구성되어 있다고 가정해보겠습니다. test = {'a': 'apple', 'b': 'ball', 'c': 'circle'} test의 키 값들을 리스트로 받기 위해서 keys() 함수를 사용한 결과입니다. keys() 함수는 리스트로 키들을 반환하는 것을 확인할 수 있습니다. 딕셔너리에서 key 값을 이용해서 값을 얻는 방법은 아래 예제와 같이 가능합니다. 아래와 같은 방법도 있겠죠. 더보기
swift basic - function swift 공부하고 있습니다 ^^;; 기초 중에 기초!! function 선언하는 부분을 간단하게 정리해보면 다음과 같습니다. func testFunc(var1:String, var2:Double) -> String { println(var1) return "\(var2)" + " " + var1 } var rString = testFunc("hello", 40.0) println(rString) 제가 볼 때는 swift가 좀 더 직관적이네요. 눈에도 잘 들어오구요. 아래와 같이 요약될 수 있겠구요. func 함수이름(변수명1:변수명1의_타입, .....) -> 반환형 { .... } 위 내용은 제일 간단한 구조이고, 더 많은 형식의 function이 존재합니다. 자세한 내용은 Swift 문서를 참고하세.. 더보기
파이썬 basic - csv 읽어서 리스트에 입력 파이썬에서 csv를 읽어서 리스트에 입력하는 간단한 소스를 정리해봅니다. 일단 무작정 소스부터 확인해보면, 1 import csv 2 3 matrix = [] 4 5 f = open('./t1.csv', 'r') 6 csvReader = csv.reader(f) 7 8 for row in csvReader: 9 matrix.append(row) 10 print row 11 12 f.close() 파이썬에 csv라는 모듈이 있더라구요. 저는 이것도 모르고, 좀 멍청한 방법으로 구현했던 기억이 .. ㅠ 1. 아무튼 import csv로 모듈을 불러오구요.3. matrix라고 이름지어준 리스트를 하나 만들구요.5. csv 파일을 오픈합니다.6. csv 모듈에 있는 reader라는 함수를 통해서 csv 내용을 .. 더보기
파이썬 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 더보기
파이썬 공부 관련 사이트 정리 파이썬 점차 영향력이 높아가는 것 같은 느낌을 받아서 기분 좋네요. 저도 잘 못하니깐, 여러 공부에 도움되는 사이트들을 즐겨찾기 해두고 있습니다. 그래서 일단 간단하게 사이트를 정리해보려구요. 순서에는 의미가 없습니다. 일부러 각 사이트에 대한 이미지는 추가하지 않았습니다. 직접 접속해보시고, 가장 잘 맞는 스타일을 활용하시는게 좋을 것 같아서요. 1. 점프 투 파이썬 : https://wikidocs.net/book/1 점프 투 파이썬은 박응용 저자께서 작성하셨습니다. 저도 오랜만에 들어가봤습니다. ebook으로도 판매중이네요. 왼쪽에 파이썬 언어에 대한 주요 내용이 참 잘 설명되어 있습니다. 꼭 한 번 읽어보시길 추천드립니다. ^^ 2. Codecademy : http://www.codecademy... 더보기
파이썬 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 - 폴더안에 있는 파일 리스트 얻기 파이썬 스크립트를 통해서, 운영체제(리눅스든 윈도우든)에 있는 폴더안에 파일들을 읽어오는 것에 대해서 간략하게 정리할께요. 사실 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.. 더보기
파이썬 Basic - 디렉토리, 파일 존재 유무 파악하기 안녕하세영. 파이썬(Python) 기초에 대해서.. 그냥 제가 필요해서 자주 쓰는 문법 위주로 작성할려고 마음 먹고 있었는데. 잘 안데네용. 오랜만에 포스팅 합니당 !!! 파이썬으로 저는 스크립트를 주로 작성하는데요. 요런 경우가 있어요 !! CASE 1 : 특정 폴더가 존재하면 나두고, 폴더가 없으면 생성하고 그곳에 파일을 저장한다. 요럴 때는 어떤 함수로 체크하는 것이 좋을까영.. Python에서는 os.path.exists 또는 os.path.isdir 함수를 지원하고 있습니다. Figure 1처럼 작성하시면 되요. 굳이 소스코드로 보여드리지 않는 이유는 간단하니깐요 !! ㅋㅋ Figure 1. isdir and exists. os를 import 하시구요. os.path.exists("있니없니_검사.. 더보기